FortuneResource.php 930 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace Benchmark\Resources;
  3. use Benchmark\Entities\FortuneEntity;
  4. use Hamlet\Database\Database;
  5. use Hamlet\Requests\Request;
  6. use Hamlet\Resources\WebResource;
  7. use Hamlet\Responses\Response;
  8. use Hamlet\Responses\SimpleOKResponse;
  9. class FortuneResource implements WebResource
  10. {
  11. private $database;
  12. public function __construct(Database $database)
  13. {
  14. $this->database = $database;
  15. }
  16. public function getResponse(Request $request): Response
  17. {
  18. $query = '
  19. SELECT id,
  20. message
  21. FROM Fortune
  22. ';
  23. $procedure = $this->database->prepare($query);
  24. $messages = $procedure->processAll()
  25. ->map('id', 'message')->flatten()
  26. ->collectAll();
  27. $messages[0] = 'Additional fortune added at request time.';
  28. asort($messages);
  29. return new SimpleOKResponse(new FortuneEntity($messages));
  30. }
  31. }