ClientPaymentMethodController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\ClientPaymentMethodRequest;
  4. use App\Http\Resources\CardsListResource;
  5. use App\Http\Resources\ClientPaymentMethodResource;
  6. use App\Services\ClientPaymentMethodService;
  7. use Illuminate\Http\JsonResponse;
  8. class ClientPaymentMethodController extends Controller
  9. {
  10. public function __construct(
  11. private readonly ClientPaymentMethodService $service
  12. ) {}
  13. public function index(int $clientId): JsonResponse
  14. {
  15. $paymentMethods = $this->service->getByClientId($clientId);
  16. return $this->successResponse(
  17. payload: CardsListResource::collection($paymentMethods)
  18. );
  19. }
  20. public function show(int $id): JsonResponse
  21. {
  22. $paymentMethod = $this->service->findById($id);
  23. return $this->successResponse(
  24. payload: new ClientPaymentMethodResource($paymentMethod)
  25. );
  26. }
  27. public function store(ClientPaymentMethodRequest $request): JsonResponse
  28. {
  29. $paymentMethod = $this->service->create($request->validated());
  30. return $this->successResponse(
  31. payload: new ClientPaymentMethodResource($paymentMethod),
  32. message: __('messages.created'),
  33. code: 201,
  34. );
  35. }
  36. public function update(ClientPaymentMethodRequest $request, int $id): JsonResponse
  37. {
  38. $paymentMethod = $this->service->findById($id);
  39. $paymentMethod = $this->service->update($paymentMethod, $request->validated());
  40. return $this->successResponse(
  41. payload: new ClientPaymentMethodResource($paymentMethod),
  42. message: __('messages.updated'),
  43. );
  44. }
  45. public function destroy(int $id): JsonResponse
  46. {
  47. $paymentMethod = $this->service->findById($id);
  48. $this->service->delete($paymentMethod);
  49. return $this->successResponse(
  50. message: __('messages.deleted'),
  51. code: 204,
  52. );
  53. }
  54. }