feat: add endpoint to retrieve selected bank account for a tenant and update routes with authentication
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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')),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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']);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user