feat: add endpoint to retrieve selected bank account for a tenant and update routes with authentication

This commit is contained in:
2026-07-03 13:54:31 -03:00
parent b1e40b3430
commit c1b7b12fe1
5 changed files with 60 additions and 5 deletions

View File

@@ -64,4 +64,13 @@ class BankAccountController extends Controller
return TenantResource::make($tenant->loadMissing(['headerLogo', 'footerLogo', 'selectedBankAccount']));
}
public function selected(Tenant $tenant): JsonResponse
{
$account = $tenant->selectedBankAccount;
abort_if(!$account, 404, 'No bank account is currently selected for this tenant.');
return BankAccountResource::make($account)->response();
}
}

View File

@@ -15,7 +15,7 @@ class BootstrapTenantController extends Controller
$dominio = $request->validated('dominio');
return TenantResource::make(
Tenant::query()->with(['headerLogo', 'footerLogo', 'selectedBankAccount'])->where('dominio', $dominio)->firstOrFail()
Tenant::query()->with(['headerLogo', 'footerLogo'])->where('dominio', $dominio)->firstOrFail()
);
}
}

View File

@@ -30,7 +30,6 @@ class TenantResource extends JsonResource
'header_logo' => $this->headerLogo?->getTemporaryUrl(1440),
'footer_logo' => $this->footerLogo?->getTemporaryUrl(1440 ),
'selected_bank_account_id' => $this->selected_bank_account_id,
'selected_bank_account' => BankAccountResource::make($this->whenLoaded('selectedBankAccount')),
];
}
}

View File

@@ -10,7 +10,10 @@ Route::get('tenants/bootstrap/{dominio}', BootstrapTenantController::class)
Route::apiResource('tenants', TenantController::class);
Route::prefix('tenants/{tenant:codigo}')->group(function (): void {
Route::post('bank-accounts/{bank_account}/select', [\App\Domains\Tenant\Controllers\BankAccountController::class, 'select']);
Route::apiResource('bank-accounts', \App\Domains\Tenant\Controllers\BankAccountController::class)
->parameters(['bank-accounts' => 'bank_account']);
Route::middleware('auth:sanctum')->group(function (): void {
Route::get('bank-accounts/selected', [\App\Domains\Tenant\Controllers\BankAccountController::class, 'selected']);
Route::post('bank-accounts/{bank_account}/select', [\App\Domains\Tenant\Controllers\BankAccountController::class, 'select']);
Route::apiResource('bank-accounts', \App\Domains\Tenant\Controllers\BankAccountController::class)
->parameters(['bank-accounts' => 'bank_account']);
});
});