UpdateResource.php 989 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace Benchmark\Resources;
  3. use Benchmark\Repositories\WorldRepository;
  4. use Hamlet\Http\Entities\JsonEntity;
  5. use Hamlet\Http\Requests\Request;
  6. use Hamlet\Http\Responses\{Response, SimpleOKResponse};
  7. class UpdateResource extends DbResource
  8. {
  9. use QueriesCountTrait;
  10. public function getResponse(Request $request): Response
  11. {
  12. $repository = new WorldRepository;
  13. $count = $this->getQueriesCount($request);
  14. $entries = $this->database->withSessions(array_map(
  15. fn () => $repository->findById(mt_rand(1, 10000)),
  16. range(1, $count),
  17. ));
  18. $modifiedEntries = array_map(
  19. fn ($entry) => $entry->withNumber(mt_rand(1, 10000)),
  20. $entries
  21. );
  22. $this->database->withSessions(array_map(
  23. fn ($modifiedEntry) => $repository->updateNumber($modifiedEntry),
  24. $modifiedEntries
  25. ));
  26. return new SimpleOKResponse(new JsonEntity($modifiedEntries));
  27. }
  28. }