UnitFinancialController.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Services\UnitFinancialService;
  4. use App\Http\Requests\UnitFinancialRequest;
  5. use App\Http\Resources\UnitFinancialResource;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. class UnitFinancialController extends Controller
  10. {
  11. public function __construct(
  12. protected UnitFinancialService $service,
  13. ) {}
  14. public function show(Request $request): JsonResponse
  15. {
  16. $item = $this->service->getByUnitId($request->integer('unit_id'));
  17. return $this->successResponse(payload: $item ? new UnitFinancialResource($item) : null);
  18. }
  19. //
  20. public function showMe(): JsonResponse
  21. {
  22. $unitId = Auth::user()?->load('units')->units->first()?->id;
  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. }