PhotoController.php 833 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. declare(strict_types=1);
  3. namespace app\miniapi\controller;
  4. use support\Request;
  5. use support\Response;
  6. use support\annotation\route\DisableDefaultRoute;
  7. use app\miniapi\http\Fields;
  8. use app\miniapi\service\PhotoService;
  9. #[DisableDefaultRoute]
  10. final class PhotoController extends BaseController
  11. {
  12. public function photo(Request $request, string $id): Response
  13. {
  14. $photo = (new PhotoService($this->access($request)))->read(
  15. $this->id($id),
  16. Fields::choice($request->get(), 'scope', ['enterprise', 'driver']),
  17. Fields::id($request->get(), 'resource_id')
  18. );
  19. return new Response(200, [
  20. 'Content-Type' => $photo->mime,
  21. 'Cache-Control' => 'no-store',
  22. 'X-Content-Type-Options' => 'nosniff',
  23. ], $photo->image_data);
  24. }
  25. }