feat(purchase-status): remove mock data and implement actual purchase status fetching

This commit is contained in:
2026-07-07 12:16:41 -03:00
parent d1e20460ac
commit e2605116c5
2 changed files with 20 additions and 8 deletions

View File

@@ -47,4 +47,14 @@ export class CheckoutService {
} }
return response.data; return response.data;
} }
async getPurchase(tenantCode: string, purchaseId: string | number): Promise<{ payment_status: string }> {
const response = await firstValueFrom(
this.http.get<{ data: { payment_status: string } }>(`${environment.url}tenants/${tenantCode}/compras/${purchaseId}`)
);
if (!response?.data) {
throw new Error('Error al obtener la compra.');
}
return response.data;
}
} }

View File

@@ -1,10 +1,8 @@
import { ChangeDetectionStrategy, Component, inject, OnInit, signal } from '@angular/core'; import { ChangeDetectionStrategy, Component, inject, OnInit, signal } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import { firstValueFrom } from 'rxjs';
import { environment } from '../../../../../environments/environment';
import { TenantService } from '../../../../core/services/tenant.service'; import { TenantService } from '../../../../core/services/tenant.service';
import { CheckoutService } from '../../../../core/services/checkout.service';
import { ButtonComponent } from '../../../../shared/components/button/button.component'; import { ButtonComponent } from '../../../../shared/components/button/button.component';
@Component({ @Component({
@@ -18,7 +16,7 @@ import { ButtonComponent } from '../../../../shared/components/button/button.com
export class PurchaseStatusPageComponent implements OnInit { export class PurchaseStatusPageComponent implements OnInit {
private readonly route = inject(ActivatedRoute); private readonly route = inject(ActivatedRoute);
private readonly router = inject(Router); private readonly router = inject(Router);
private readonly http = inject(HttpClient); private readonly checkoutService = inject(CheckoutService);
private readonly tenantService = inject(TenantService); private readonly tenantService = inject(TenantService);
protected readonly isLoading = signal(true); protected readonly isLoading = signal(true);
@@ -37,14 +35,18 @@ export class PurchaseStatusPageComponent implements OnInit {
} }
private async checkPurchaseStatus(tenantCode: string, purchaseId: string): Promise<void> { private async checkPurchaseStatus(tenantCode: string, purchaseId: string): Promise<void> {
// MOCK DATA FOR DESIGN TESTING
try { try {
this.isLoading.set(true); this.isLoading.set(true);
// Simular un delay de red const purchase = await this.checkoutService.getPurchase(tenantCode, purchaseId);
await new Promise((resolve) => setTimeout(resolve, 500)); const paymentStatus = purchase.payment_status;
this.status.set('approved'); // Cambiar a 'pending' o 'error' para probar otros estados if (paymentStatus === 'approved') {
this.status.set('approved');
} else {
this.status.set('pending');
}
} catch (error) { } catch (error) {
console.error('Failed to fetch purchase status:', error);
this.status.set('error'); this.status.set('error');
} finally { } finally {
this.isLoading.set(false); this.isLoading.set(false);