CustomScheduleController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\CustomScheduleRequest;
  4. use App\Http\Resources\CustomScheduleResource;
  5. use App\Services\CustomScheduleService;
  6. use Illuminate\Http\JsonResponse;
  7. class CustomScheduleController extends Controller
  8. {
  9. protected $customScheduleService;
  10. public function __construct(CustomScheduleService $customScheduleService)
  11. {
  12. $this->customScheduleService = $customScheduleService;
  13. }
  14. public function index(): JsonResponse
  15. {
  16. $customSchedules = $this->customScheduleService->getAll();
  17. return $this->successResponse(
  18. CustomScheduleResource::collection($customSchedules),
  19. );
  20. }
  21. public function store(CustomScheduleRequest $request): JsonResponse
  22. {
  23. try {
  24. $validated = $request->validated();
  25. $customSchedules = $this->customScheduleService->create($validated);
  26. $count = count($customSchedules);
  27. $message = $count > 1
  28. ? "{$count} oportunidades criadas com sucesso!"
  29. : __("messages.created");
  30. return $this->successResponse(
  31. payload: CustomScheduleResource::collection($customSchedules),
  32. message: $message,
  33. code: 201,
  34. );
  35. } catch (\Exception $e) {
  36. return $this->errorResponse($e->getMessage(), 422);
  37. }
  38. }
  39. public function show(string $id): JsonResponse
  40. {
  41. $customSchedule = $this->customScheduleService->getById($id);
  42. return $this->successResponse(
  43. new CustomScheduleResource($customSchedule),
  44. );
  45. }
  46. public function update(CustomScheduleRequest $request, string $id): JsonResponse
  47. {
  48. try {
  49. $customSchedule = $this->customScheduleService->update($id, $request->validated());
  50. return $this->successResponse(
  51. payload: new CustomScheduleResource($customSchedule),
  52. message: __("messages.updated"),
  53. );
  54. } catch (\Exception $e) {
  55. return $this->errorResponse($e->getMessage(), 422);
  56. }
  57. }
  58. public function destroy(string $id): JsonResponse
  59. {
  60. try {
  61. $this->customScheduleService->delete($id);
  62. return $this->successResponse(
  63. message: __("messages.deleted"),
  64. );
  65. } catch (\Exception $e) {
  66. return $this->errorResponse($e->getMessage(), 422);
  67. }
  68. }
  69. }