import { PayWithCodeService } from '../Services/PayWithCodeService'; import { CreateVirtualAccountRequestBuilder } from '../RequestDTOs/CreateVirtualAccountRequest'; import { QueryOrderResultBuilder } from '../RequestDTOs/QueryOrderResultRequest'; import { ErrorResponse } from '../ResponseDTOs/ErrorResponse'; import { PayInCreateOrderResponse } from '../ResponseDTOs/PayInCreateOrderResponseOld'; import { VirtualAccountService } from '../Services/VirtualAccountService'; import { BuildPayload } from '../RequestDTOs/PaymentRequest'; export class VirtualAccountServiceManager { private virtualAccountService: VirtualAccountService; constructor( private appId: string, private countryCode: string, privateKey: string, isTest: boolean ) { this.virtualAccountService = new VirtualAccountService( appId, countryCode, privateKey, isTest ); } async createVirtualAccount(createVirtualAccountRequestBuilder: BuildPayload) { try { const createOrderResponse = await this.virtualAccountService.createVirtualAccount(createVirtualAccountRequestBuilder); return createOrderResponse; } catch (error) { console.error('Error creating order:', error); } } async updateVirtualAccountStatus(updateVirtualAccountStatusBuilder: BuildPayload) { try { const createOrderResponse = await this.virtualAccountService.updateVirtualAcctStatus(updateVirtualAccountStatusBuilder); return createOrderResponse; } catch (error) { console.error('Error creating order:', error); } } async deleteVirtualAccount(deleteVirtualAcctRequest: BuildPayload) { try { const deleteVirtualAcctResp = await this.virtualAccountService.deleteVirtualAccount(deleteVirtualAcctRequest); return deleteVirtualAcctResp; } catch (error) { console.error('Error creating order:', error); } } async queryVirtualAccount(queryVirtualAccountRequest: BuildPayload) { try { const queryVirtualAccountResponse = await this.virtualAccountService.queryVirtualAccount(queryVirtualAccountRequest); return queryVirtualAccountResponse; } catch (error) { console.error('Error creating order:', error); } } async querySinglePayInOrder(querySinglePayInOrderRequest: BuildPayload) { try { const querySinglePayInOrderResponse = await this.virtualAccountService.querySinglePayInOrder(querySinglePayInOrderRequest); return querySinglePayInOrderResponse; } catch (error) { console.error('Error creating order:', error); } } async queryBulkPayInOrder(queryBulkPayInOrderRequest: BuildPayload) { try { const queryBulkPayInOrderResponse = await this.virtualAccountService.queryBulkPayInOrder(queryBulkPayInOrderRequest); return queryBulkPayInOrderResponse; } catch (error) { console.error('Error creating order:', error); } } }