UnitPaymentAccountController.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Controllers\Concerns\ResolvesActiveUnit;
  4. use App\Http\Requests\UnitPaymentAccountRequest;
  5. use App\Http\Resources\UnitPaymentAccountResource;
  6. use App\Services\UnitPaymentAccountService;
  7. use Illuminate\Http\JsonResponse;
  8. class UnitPaymentAccountController extends Controller
  9. {
  10. use ResolvesActiveUnit;
  11. public function __construct(
  12. protected UnitPaymentAccountService $service,
  13. ) {}
  14. public function showMe(): JsonResponse
  15. {
  16. $unitId = $this->activeUnitId();
  17. if (!$unitId) {
  18. return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
  19. }
  20. $item = $this->service->getByUnitId($unitId);
  21. return $this->successResponse(
  22. payload: $item ? new UnitPaymentAccountResource($item) : null,
  23. );
  24. }
  25. public function upsertMe(UnitPaymentAccountRequest $request): JsonResponse
  26. {
  27. $unitId = $this->activeUnitId();
  28. if (!$unitId) {
  29. return $this->errorResponse(message: 'Unidade não encontrada', code: 404);
  30. }
  31. $item = $this->service->upsertAsaasApiKey($unitId, $request->validated('asaas_api_key'));
  32. return $this->successResponse(
  33. payload: new UnitPaymentAccountResource($item),
  34. message: __('messages.updated'),
  35. );
  36. }
  37. }