feat(checkout): implement authentication guard for checkout route and add bank account service
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
[paymentMethods]="paymentMethods"
|
||||
[selectedPaymentMethod]="selectedPaymentMethod()"
|
||||
[copiedTransferField]="copiedTransferField()"
|
||||
[transferAccount]="transferAccount"
|
||||
[transferAccount]="transferAccount()"
|
||||
(paymentMethodChange)="selectPaymentMethod($event)"
|
||||
(copyTransferValue)="copyTransferValue($event.field, $event.value)"
|
||||
(cancelStep)="onCancel()"
|
||||
|
||||
@@ -4,6 +4,9 @@ import { Router } from '@angular/router';
|
||||
import { startWith } from 'rxjs';
|
||||
|
||||
import { CartService } from '../../../../core/services/cart/cart.service';
|
||||
import { TenantService } from '../../../../core/services/tenant.service';
|
||||
import { CheckoutService } from '../../../../core/services/checkout.service';
|
||||
import { BankAccount } from '../../../../core/services/tenant.interface';
|
||||
import { CartItem } from '../../../../core/services/cart/cart.interface';
|
||||
import { CartComponent, CartItemMock } from '../../../../shared/components/cart/cart.component';
|
||||
import { StepComponent } from '../../../../shared/components/stepper/step.component';
|
||||
@@ -30,6 +33,8 @@ export class CheckoutPageComponent {
|
||||
private readonly formBuilder = inject(FormBuilder);
|
||||
private readonly cartService = inject(CartService);
|
||||
private readonly router = inject(Router);
|
||||
private readonly tenantService = inject(TenantService);
|
||||
private readonly checkoutService = inject(CheckoutService);
|
||||
|
||||
@ViewChild(StepperComponent) stepper!: StepperComponent;
|
||||
|
||||
@@ -63,17 +68,36 @@ export class CheckoutPageComponent {
|
||||
];
|
||||
protected readonly selectedPaymentMethod = signal<PaymentMethod>('qr');
|
||||
protected readonly copiedTransferField = signal<TransferField | null>(null);
|
||||
protected readonly transferAccount: TransferAccount = {
|
||||
protected readonly transferAccount = signal<TransferAccount>({
|
||||
titular: 'Nombre y Apellido',
|
||||
entidad: 'TelePagos',
|
||||
cvu: '0000000000000000000000',
|
||||
alias: 'telepagos.ar'
|
||||
};
|
||||
});
|
||||
|
||||
constructor() {
|
||||
this.form.statusChanges
|
||||
.pipe(startWith(this.form.status))
|
||||
.subscribe(() => this.isStep1Valid.set(this.form.valid));
|
||||
|
||||
void this.loadSelectedBankAccount();
|
||||
}
|
||||
|
||||
private async loadSelectedBankAccount(): Promise<void> {
|
||||
const tenant = this.tenantService.tenant();
|
||||
if (!tenant) return;
|
||||
|
||||
try {
|
||||
const data = await this.checkoutService.getSelectedBankAccount(tenant.codigo);
|
||||
this.transferAccount.set({
|
||||
titular: data.titular,
|
||||
entidad: data.entidad,
|
||||
cvu: data.cvu,
|
||||
alias: data.alias
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Failed to load selected bank account:', error);
|
||||
}
|
||||
}
|
||||
|
||||
private mapCartItemToMock(item: CartItem): CartItemMock {
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Routes } from '@angular/router';
|
||||
|
||||
import { AuthLayoutComponent } from '../../core/layout/auth-layout/auth-layout.component';
|
||||
import { StoreLayoutComponent } from '../../core/layout/store-layout/store-layout.component';
|
||||
import { guestOnlyGuard } from '../../core/services/auth/auth.guards';
|
||||
import { authGuard, guestOnlyGuard } from '../../core/services/auth/auth.guards';
|
||||
import { LoginPageComponent } from './pages/login-page/login-page.component';
|
||||
import { RegisterPageComponent } from './pages/register-page/register-page.component';
|
||||
import { StoreHomePageComponent } from './pages/store-home-page/store-home-page.component';
|
||||
@@ -47,6 +47,7 @@ export const routes: Routes = [
|
||||
},
|
||||
{
|
||||
path: 'checkout',
|
||||
canActivate: [authGuard],
|
||||
loadComponent: () =>
|
||||
import('./pages/checkout-page/checkout-page.component').then(
|
||||
(m) => m.CheckoutPageComponent
|
||||
|
||||
Reference in New Issue
Block a user