import {ClientCreationOptions} from '../lib/HttpClient'; import ApprovePaymentTransactionsRequest from '../request/ApprovePaymentTransactionsRequest'; import CancelCrossBookingRequest from '../request/CancelCrossBookingRequest'; import CompleteThreeDSPaymentRequest from '../request/CompleteThreeDSPaymentRequest'; import CreatePaymentRequest from '../request/CreatePaymentRequest'; import CrossBookingRequest from '../request/CrossBookingRequest'; import DeleteStoredCardRequest from '../request/DeleteStoredCardRequest'; import DisapprovePaymentTransactionsRequest from '../request/DisapprovePaymentTransactionsRequest'; import InitCheckoutPaymentRequest from '../request/InitCheckoutPaymentRequest'; import InitCreditPaymentRequest from '../request/InitCreditPaymentRequest'; import InitThreeDsPaymentRequest from '../request/InitThreeDsPaymentRequest'; import MoneyTransferPaymentRequest from '../request/MoneyTransferPaymentRequest'; import PostAuthPaymentRequest from '../request/PostAuthPaymentRequest'; import RefundPaymentRequest from '../request/RefundPaymentRequest'; import RefundPaymentTransactionRequest from '../request/RefundPaymentTransactionRequest'; import SearchCrossBookingsRequest from '../request/SearchCrossBookingsRequest'; import SearchPaymentsRequest from '../request/SearchPaymentsRequest'; import SearchPaymentTransactionRefundsRequest from '../request/SearchPaymentTransactionRefundsRequest'; import SearchStoredCardsRequest from '../request/SearchStoredCardsRequest'; import UpdatePaymentTransactionRequest from '../request/UpdatePaymentTransactionRequest'; import CrossBookingTransactionResponse from '../response/CrossBookingTransactionResponse'; import DataResponse from '../response/DataResponse'; import InitCheckoutPaymentResponse from '../response/InitCheckoutPaymentResponse'; import InitThreeDSPaymentResponse from '../response/InitThreeDSPaymentResponse'; import InitCreditPaymentResponse from '../response/InitCreditPaymentResponse'; import MultiCardPostAuthPaymentRequest from '../request/MultiCardPostAuthPaymentRequest'; import MoneyTransferPaymentResult from '../response/MoneyTransferPaymentResult'; import PaymentDetailResponse from '../response/PaymentDetailResponse'; import PaymentRefundResponse from '../response/PaymentRefundResponse'; import PaymentResponse from '../response/PaymentResponse'; import PaymentTransactionApprovalListResponse from '../response/PaymentTransactionApprovalListResponse'; import PaymentTransactionRefundListResponse from '../response/PaymentTransactionRefundListResponse'; import PaymentTransactionRefundResponse from '../response/PaymentTransactionRefundResponse'; import PaymentTransactionResponse from '../response/PaymentTransactionResponse'; import StoredCardResponse from '../response/StoredCardResponse'; import BaseAdapter from './BaseAdapter'; import PreviewCreditPaymentRequest from '../request/PreviewCreditPaymentRequest'; import PreviewCreditPaymentResponse from '../response/PreviewCreditPaymentResponse'; export default class PaymentAdapter extends BaseAdapter { constructor(options: ClientCreationOptions) { super(options); } async createPayment(request: CreatePaymentRequest): Promise { return this._client.post('/payment/v1/card-payments', request); } async retrievePaymentDetail(id: number): Promise { return this._client.get(`/payment-reporting/v1/payments/${id}`); } async retrievePayment(id: number): Promise { return this._client.get(`/payment/v1/card-payments/${id}`); } async searchPayments(request: SearchPaymentsRequest): Promise> { return this._client.get('/payment-reporting/v1/payments', request); } async approvePaymentTransactions(request: ApprovePaymentTransactionsRequest): Promise { return this._client.post('/payment/v1/payment-transactions/approve', request); } async disapprovePaymentTransactions(request: DisapprovePaymentTransactionsRequest): Promise { return this._client.post('/payment/v1/payment-transactions/disapprove', request); } async updatePaymentTransaction(id: number, request: UpdatePaymentTransactionRequest): Promise { return this._client.put(`/payment/v1/payment-transactions/${id}`, request); } async init3DSPayment(request: InitThreeDsPaymentRequest): Promise { return this._client.post('/payment/v1/card-payments/3ds-init', request); } async complete3DSPayment(request: CompleteThreeDSPaymentRequest): Promise { return this._client.post('/payment/v1/card-payments/3ds-complete', request); } async initCheckoutPayment(request: InitCheckoutPaymentRequest): Promise { return this._client.post('/payment/v1/checkout-payments/init', request); } async initCreditPayment(request: InitCreditPaymentRequest): Promise { return this._client.post('/payment/v1/credit-payments/init', request); } async previewCreditPayment(request: PreviewCreditPaymentRequest): Promise { return this._client.post('/payment/v1/credit-payments/preview', request); } async retrieveCheckoutPayment(token: string): Promise { return this._client.get(`/payment/v1/checkout-payments/${token}`); } async refundPaymentTransaction(request: RefundPaymentTransactionRequest): Promise { return this._client.post('/payment/v1/refund-transactions', request); } async retrievePaymentTransactionRefund(refundTxId: number): Promise { return this._client.get(`/payment/v1/refund-transactions/${refundTxId}`); } async searchPaymentTransactionRefunds(request: SearchPaymentTransactionRefundsRequest): Promise { return this._client.get('/payment/v1/refund-transactions', request); } async refundPayment(request: RefundPaymentRequest): Promise { return this._client.post('/payment/v1/refunds', request); } async retrievePaymentRefund(refundId: number): Promise { return this._client.get(`/payment/v1/refunds/${refundId}`); } async receiveMoney(request: CrossBookingRequest): Promise { return this._client.post('/payment/v1/cross-bookings/receive', request); } async sendMoney(request: CrossBookingRequest): Promise { return this._client.post('/payment/v1/cross-bookings/send', request); } async cancelCrossBooking(request: CancelCrossBookingRequest): Promise { return this._client.post('/payment/v1/cross-bookings/cancel', request); } async searchCrossBookings(request: SearchCrossBookingsRequest): Promise> { return this._client.get('/payment/v1/cross-bookings', request); } async deleteStoredCard(request: DeleteStoredCardRequest): Promise { await this._client.delete('/payment/v1/cards', request); } async searchStoredCards(request: SearchStoredCardsRequest): Promise> { return this._client.get('/payment/v1/cards', request); } async postAuthPayment(paymentId: number, request: PostAuthPaymentRequest): Promise { return this._client.post(`/payment/v1/card-payments/${paymentId}/post-auth`, request); } async multiCardPostAuthPayment(conversationId: number, request: MultiCardPostAuthPaymentRequest): Promise { return this._client.post(`/payment/v1/card-payments/${conversationId}/multi_post-auth`, request); } async moneyTransferPayment(request: MoneyTransferPaymentRequest): Promise { return this._client.post(`/payment/v1/money-transfers/code`, request); } async initWalletPayment(request: any) { return this._client.post('/payment/v1/wallet/init', request); } async inquireWalletPayment(orderId: string): Promise { return this._client.get('/payment/v1/wallet/status/' + orderId); } }