UNPKG

@spreeloop/orange_money

Version:
74 lines 3.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.transfer = exports.TransferRequestSchema = exports.TransferMethod = void 0; const joi_1 = __importDefault(require("joi")); const https_1 = require("../../utils/https"); const disbursement_service_1 = require("../implementations/disbursement_service"); const regex_1 = require("../utils/regex"); var TransferMethod; (function (TransferMethod) { TransferMethod["OrangeMoney"] = "OrangeMoney"; })(TransferMethod = exports.TransferMethod || (exports.TransferMethod = {})); exports.TransferRequestSchema = joi_1.default.object({ webhook: joi_1.default.string().uri().required(), amount: joi_1.default.number().integer().min(1).required(), customerPhone: joi_1.default.string() .pattern(regex_1.orangeMoneyPhoneNumberWithoutCountryCodeRegex) .required(), customerName: joi_1.default.string().required(), token: joi_1.default.string().required(), }); /** * Transfers the specified amount of currency to the specified party. * * @param {DisbursementServiceConfig} configs - The disbursement service config. * @param {TransferRequest} params - The transfer parameters. * @return {MethodResponse<string, TransferRawData>} - The method response. */ async function transfer({ configs, params, endPoint, }) { const logger = configs.logger; logger.info(`transfer is running with params : ${JSON.stringify(params)}`); const { error: configsValidationError, value: configValues } = disbursement_service_1.DisbursementServiceConfigSchema.validate(configs); if (configsValidationError) { logger.error(`Invalid DisbursementServiceConfig request parameters. params : ${JSON.stringify(configsValidationError.details)}`); return { error: configsValidationError.details }; } const { error: paramsValidationError, value: paramsValues } = exports.TransferRequestSchema.validate(params); if (paramsValidationError) { return { error: `Invalid transfer request parameters. params : ${JSON.stringify(params)}`, }; } const header = { Authorization: `Bearer ${paramsValues.token}`, }; const body = { customerkey: configValues.customerKey, customersecret: configValues.customerSecret, channelUserMsisdn: configValues.channelUserMsisdn, pin: configValues.pin, webhook: paramsValues.webhook, amount: `${paramsValues.amount}`, final_customer_phone: paramsValues.customerPhone, final_customer_name: paramsValues.customerName, refund_method: TransferMethod.OrangeMoney, }; const response = await (0, https_1.postRequest)({ logger: logger, route: endPoint, data: body, headers: header, }); if (!response.response) { return { error: response.error }; } return { data: response.response.data.MessageId, raw: response.response.data, }; } exports.transfer = transfer; //# sourceMappingURL=transfer.js.map