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 {
|
||||
|
||||
Reference in New Issue
Block a user