UNPKG

afrimomo-sdk

Version:

A unified SDK for African payment providers

79 lines 3.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PawapayPayouts = void 0; const baseService_1 = require("@afrimomo-sdk/utils/baseService"); const logger_1 = require("@afrimomo-sdk/utils/logger"); class PawapayPayouts extends baseService_1.BaseService { networkHandler; baseEndpoint = "/payouts"; constructor(networkHandler) { super(); this.networkHandler = networkHandler; } async sendPayout(transaction) { try { const phoneNumber = this.formatPhoneNumber(transaction.phoneNumber); logger_1.logger.info("Sending payout to", phoneNumber, "the amount of", transaction.amount, "with payoutId", transaction.payoutId, "and currency", transaction.currency); const response = await this.networkHandler .getInstance() .post(this.baseEndpoint, { payoutId: transaction.payoutId, amount: transaction.amount.toString(), currency: transaction.currency, correspondent: transaction.correspondent, recipient: { type: "MSISDN", address: { value: phoneNumber }, }, customerTimestamp: transaction.customerTimestamp || new Date().toISOString(), statementDescription: transaction.statementDescription, }); logger_1.logger.info("Payout transaction successful:", response.data); return response.data; } catch (error) { logger_1.logger.error("Payout transaction failed:", error); return this.networkHandler.handleErrors(error); } } async sendBulkPayout(transactions) { try { const formattedTransactions = transactions.map((transaction) => ({ payoutId: transaction.payoutId, amount: transaction.amount.toString(), currency: transaction.currency, correspondent: transaction.correspondent, recipient: { type: "MSISDN", address: { value: this.formatPhoneNumber(transaction.phoneNumber) }, }, customerTimestamp: transaction.customerTimestamp || new Date().toISOString(), statementDescription: transaction.statementDescription, })); const response = await this.networkHandler .getInstance() .post(this.baseEndpoint, { formattedTransactions }); logger_1.logger.info("Bulk payout transaction successful:", response.data); return response.data; } catch (error) { logger_1.logger.error("Bulk payout transaction failed:", error); return this.networkHandler.handleErrors(error); } } async getPayout(depositId) { try { const response = await this.networkHandler .getInstance() .get(`${this.baseEndpoint}/${depositId}`); logger_1.logger.info("Payout details retrieved successfully:", response.data); return response.data; } catch (error) { logger_1.logger.error("Get payout failed:", error); return this.networkHandler.handleErrors(error); } } } exports.PawapayPayouts = PawapayPayouts; //# sourceMappingURL=index.js.map