import { PayWithCodeService } from '../Services/PayWithCodeService'; import { CreateOrderRequestBuilder } from '../RequestDTOs/CreateOrderRequest'; import { QueryOrderResultBuilder } from '../RequestDTOs/QueryOrderResultRequest'; import { ErrorResponse } from '../ResponseDTOs/ErrorResponse'; import { PayInCreateOrderResponse } from '../ResponseDTOs/PayInCreateOrderResponseOld'; export class PayWithCodeServiceManager { private payWithCodeService: PayWithCodeService; constructor( private appId: string, private countryCode: string, privateKey: string, isTest: boolean ) { this.payWithCodeService = new PayWithCodeService( appId, countryCode, privateKey, isTest ); } async createOrder(createOrderRequestBuilder: CreateOrderRequestBuilder) { try { // Create order status const createOrderResponse = await this.payWithCodeService.createOrder(createOrderRequestBuilder); console.log("OrderResponse Manager: ", createOrderResponse); return createOrderResponse; } catch (error) { console.error('Error creating order:', error); } } async fetchOrderStatus(builder: QueryOrderResultBuilder) { try { // Fetch order status const fetchOrderStatusResponseCode = await this.payWithCodeService.fetchOrderStatus(builder); console.log("fetchOrderStatusResponseCode: ", fetchOrderStatusResponseCode); return fetchOrderStatusResponseCode; // Return the original response if needed } catch (error) { console.error('Error fetching order status:', error); throw error; // Rethrow the error to propagate it } } }