UnitFinancialController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Controllers\Concerns\ResolvesActiveUnit;
  4. use App\Services\UnitFinancialService;
  5. use App\Http\Requests\UnitFinancialRequest;
  6. use App\Http\Resources\UnitFinancialResource;
  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 showMe(): JsonResponse
  21. {
  22. $unitId = $this->activeUnitId();
  23. if (!$unitId) {
  24. return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
  25. }
  26. $item = $this->service->getByUnitId($unitId);
  27. return $this->successResponse(payload: $item ? new UnitFinancialResource($item) : null);
  28. }
  29. public function upsert(UnitFinancialRequest $request): JsonResponse
  30. {
  31. $validated = $request->validated();
  32. $unitId = $validated['unit_id'];
  33. unset($validated['unit_id']);
  34. $item = $this->service->upsert($unitId, $validated);
  35. return $this->successResponse(payload: new UnitFinancialResource($item), message: __('messages.updated'));
  36. }
  37. public function upsertMe(UnitFinancialRequest $request): JsonResponse
  38. {
  39. $unitId = $this->activeUnitId();
  40. if (!$unitId) {
  41. return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
  42. }
  43. $validated = $request->validated();
  44. unset($validated['unit_id']);
  45. $item = $this->service->upsert($unitId, $validated);
  46. return $this->successResponse(payload: new UnitFinancialResource($item), message: __('messages.updated'));
  47. }
  48. }