UnitFinancialController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Controllers\Concerns\ResolvesActiveUnit;
  4. use App\Http\Requests\UnitFinancialRequest;
  5. use App\Http\Resources\UnitFinancialResource;
  6. use App\Services\UnitFinancialService;
  7. use Illuminate\Http\JsonResponse;
  8. use Illuminate\Http\Request;
  9. class UnitFinancialController extends Controller
  10. {
  11. use ResolvesActiveUnit;
  12. public function __construct(
  13. protected UnitFinancialService $service,
  14. ) {}
  15. public function show(Request $request): JsonResponse
  16. {
  17. $item = $this->service->getByUnitId($request->integer('unit_id'));
  18. return $this->successResponse(payload: $item ? new UnitFinancialResource($item) : null);
  19. }
  20. public function upsert(UnitFinancialRequest $request): JsonResponse
  21. {
  22. $validated = $request->validated();
  23. $unitId = $validated['unit_id'];
  24. unset($validated['unit_id']);
  25. $item = $this->service->upsert($unitId, $validated);
  26. return $this->successResponse(payload: new UnitFinancialResource($item), message: __('messages.updated'));
  27. }
  28. //
  29. public function showMe(): JsonResponse
  30. {
  31. $unitId = $this->activeUnitId();
  32. if (!$unitId) {
  33. return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
  34. }
  35. $item = $this->service->getByUnitId($unitId);
  36. return $this->successResponse(payload: $item ? new UnitFinancialResource($item) : null);
  37. }
  38. public function upsertMe(UnitFinancialRequest $request): JsonResponse
  39. {
  40. $unitId = $this->activeUnitId();
  41. if (!$unitId) {
  42. return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
  43. }
  44. $validated = $request->validated();
  45. unset($validated['unit_id']);
  46. $item = $this->service->upsert($unitId, $validated);
  47. return $this->successResponse(payload: new UnitFinancialResource($item), message: __('messages.updated'));
  48. }
  49. }