api.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /** @var Fomo\Router\Router $router */
  3. use Fomo\Database\DB;
  4. use Fomo\Request\Request;
  5. $router->get('/plaintext' , function () {
  6. return response()->withHeaders([
  7. 'Server' => 'Fomo',
  8. 'Date' => date('D, d M Y H:i:s T'),
  9. ])->plainText('Hello, World!');
  10. });
  11. $router->get('/json' , function () {
  12. return response()->withHeaders([
  13. 'Server' => 'Fomo',
  14. 'Date' => date('D, d M Y H:i:s T'),
  15. ])->json(['message' => 'Hello, World!']);
  16. });
  17. $router->get('/db' , function () {
  18. $id = mt_rand(1, 10000);
  19. // need to pull back a single record from the World table by an $id.
  20. $world = (array) DB::table('World')->where('id', '=', $id)->get()->toArray()[0];
  21. return response()->withHeaders([
  22. 'Server' => 'Fomo',
  23. 'Date' => date('D, d M Y H:i:s T'),
  24. ])->json($world);
  25. });
  26. $router->get('/fortunes' , function () {
  27. //$table = DB::table('World');
  28. $fortunes = DB::table('Fortune')->get()->toArray();
  29. $fortune = new \stdClass();
  30. $fortune->id = 0;
  31. $fortune->message = 'Additional fortune added at request time.';
  32. array_unshift($fortunes, $fortune);
  33. // sort the fortunes by message
  34. usort($fortunes, function($a, $b) {
  35. return $a->message <=> $b->message;
  36. });
  37. ob_start();
  38. include(storagePath('view/fortunes.php'));
  39. $html = ob_get_clean();
  40. return response()->withHeaders([
  41. 'Server' => 'Fomo',
  42. 'Date' => date('D, d M Y H:i:s T'),
  43. ])->html($html);
  44. });
  45. $router->get('/query' , function () {
  46. $request = Request::getInstance();
  47. $queries = $request->get('queries');
  48. if (is_numeric($queries)) {
  49. $queries = max(1, min($queries, 500));
  50. } else {
  51. $queries = 1;
  52. }
  53. $worlds = [];
  54. for ($i = 0; $i < $queries; ++$i) {
  55. $random_id = mt_rand(1, 10000);
  56. $world = (array) DB::table('World')->where('id', '=', $random_id)->get()->toArray()[0];
  57. $worlds[] = $world;
  58. }
  59. return response()->withHeaders([
  60. 'Server' => 'Fomo',
  61. 'Date' => date('D, d M Y H:i:s T'),
  62. ])->json($worlds);
  63. });
  64. $router->get('/update' , function () {
  65. $request = Request::getInstance();
  66. $queries = $request->get('queries');
  67. if (is_numeric($queries)) {
  68. $queries = max(1, min($queries, 500));
  69. } else {
  70. $queries = 1;
  71. }
  72. $worlds = [];
  73. for ($i = 0; $i < $queries; ++$i) {
  74. $random_id = mt_rand(1, 10000);
  75. $random_number = mt_rand(1, 10000);
  76. $world = (array) DB::table('World')->where('id', '=', $random_id)->get()->toArray()[0];
  77. DB::table('World')->where('id', '=', $world['id'])->update(['randomNumber' => $random_number]);
  78. $world['randomNumber'] = $random_number;
  79. $worlds[] = $world;
  80. }
  81. return response()->withHeaders([
  82. 'Server' => 'Fomo',
  83. 'Date' => date('D, d M Y H:i:s T'),
  84. ])->json($worlds);
  85. });