ClientFavoriteProviderController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\ClientFavoriteProviderRequest;
  4. use App\Http\Resources\ClientFavoriteProviderResource;
  5. use App\Services\ClientFavoriteProviderService;
  6. use Illuminate\Http\JsonResponse;
  7. class ClientFavoriteProviderController extends Controller
  8. {
  9. // return $this->successResponse(
  10. // payload: new ProviderBlockedDayResource($blockedDay),
  11. // message: __("messages.created"),
  12. // code: 201,
  13. // );
  14. public function __construct(
  15. private ClientFavoriteProviderService $service
  16. ) {}
  17. public function index(int $clientId): JsonResponse
  18. {
  19. $favorites = $this->service->getByClientId($clientId);
  20. return $this->successResponse(
  21. payload: ClientFavoriteProviderResource::collection($favorites),
  22. );
  23. }
  24. public function show(int $id): JsonResponse
  25. {
  26. $favorite = $this->service->getById($id);
  27. return $this->successResponse(
  28. payload: new ClientFavoriteProviderResource($favorite),
  29. );
  30. }
  31. public function store(ClientFavoriteProviderRequest $request): JsonResponse
  32. {
  33. $favorite = $this->service->create($request->validated());
  34. return $this->successResponse(
  35. payload: new ClientFavoriteProviderResource($favorite),
  36. message: __("messages.created"),
  37. code: 201,
  38. );
  39. return $this->successResponse(
  40. payload: new ClientFavoriteProviderResource($favorite),
  41. message: __("messages.created"),
  42. code: 201,
  43. );
  44. }
  45. public function update(ClientFavoriteProviderRequest $request, int $id): JsonResponse
  46. {
  47. $favorite = $this->service->update($id, $request->validated());
  48. return $this->successResponse(
  49. payload: new ClientFavoriteProviderResource($favorite),
  50. message: __("messages.updated"),
  51. );
  52. }
  53. public function destroy(int $id): JsonResponse
  54. {
  55. $this->service->delete($id);
  56. return $this->successResponse(
  57. message: __("messages.deleted"),
  58. code: 204,
  59. );
  60. }
  61. public function getFavoritedProviders(int $clientId): JsonResponse
  62. {
  63. $providerIds = $this->service->getFavoritedProviderIds($clientId);
  64. return $this->successResponse(
  65. payload: $providerIds,
  66. );
  67. }
  68. }