afrimomo-sdk
Version:
A unified SDK for African payment providers
79 lines • 3.44 kB
JavaScript
;
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