AddressController.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\AddressRequest;
  4. use App\Http\Resources\AddressResource;
  5. use App\Services\AddressService;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Support\Facades\Log;
  8. class AddressController extends Controller
  9. {
  10. protected AddressService $addressService;
  11. public function __construct(AddressService $addressService)
  12. {
  13. $this->addressService = $addressService;
  14. }
  15. public function showBySource(AddressRequest $request): JsonResponse
  16. {
  17. $address = $this->addressService->findBySource($request->validated());
  18. return $this->successResponse(
  19. payload: AddressResource::collection($address),
  20. );
  21. }
  22. public function show($id): JsonResponse
  23. {
  24. $address = $this->addressService->one($id);
  25. return $this->successResponse(
  26. payload: new AddressResource($address),
  27. );
  28. }
  29. public function store(AddressRequest $request): JsonResponse
  30. {
  31. $address = $this->addressService->create($request->validated());
  32. return $this->successResponse(
  33. payload: new AddressResource($address),
  34. message: __("messages.created"),
  35. code: 201,
  36. );
  37. }
  38. public function update(AddressRequest $request, string $id): JsonResponse
  39. {
  40. $address = $this->addressService->update($request->validated(), $id);
  41. Log::info($address);
  42. return $this->successResponse(
  43. payload: new AddressResource($address),
  44. message: __("messages.updated"),
  45. );
  46. }
  47. public function destroy(string $id): JsonResponse
  48. {
  49. $this->addressService->delete($id);
  50. return $this->successResponse(
  51. message: __("messages.deleted"),
  52. code: 204,
  53. );
  54. }
  55. }