UNPKG

@spreeloop/orange_money

Version:
84 lines 3.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Disbursement = exports.DisbursementServiceConfigSchema = void 0; const joi_1 = __importDefault(require("joi")); const constants_1 = require("../utils/constants"); const regex_1 = require("../utils/regex"); const live_1 = require("./src/live"); const sandbox_1 = require("./src/sandbox"); /** * Joi schema for DisbursementServiceConfigSchema. */ exports.DisbursementServiceConfigSchema = joi_1.default.object({ clientId: joi_1.default.string().required().messages({ 'string.base': '"clientId" should be a type of \'text\'', 'string.empty': '"clientId" cannot be an empty field', 'any.required': '"clientId" is a required field', }), clientSecret: joi_1.default.string().required().messages({ 'string.base': '"clientSecret" should be a type of \'text\'', 'string.empty': '"clientSecret" cannot be an empty field', 'any.required': '"clientSecret" is a required field', }), customerKey: joi_1.default.string().required().messages({ 'string.base': '"customerKey" should be a type of \'text\'', 'string.empty': '"customerKey" cannot be an empty field', 'any.required': '"customerKey" is a required field', }), customerSecret: joi_1.default.string().required().messages({ 'string.base': '"customerSecret" should be a type of \'text\'', 'string.empty': '"customerSecret" cannot be an empty field', 'any.required': '"customerSecret" is a required field', }), channelUserMsisdn: joi_1.default.string() .pattern(regex_1.merchantPhoneNumberRegex) .required() .messages({ 'string.base': '"channelUserMsisdn" should be a type of \'text\'', 'string.empty': '"channelUserMsisdn" cannot be an empty field', 'any.required': '"channelUserMsisdn" is a required field', }), pin: joi_1.default.string().required().messages({ 'string.base': '"pin" should be a type of \'text\'', 'string.empty': '"pin" cannot be an empty field', 'any.required': '"pin" is a required field', }), environment: joi_1.default.string() .valid(...Object.values(constants_1.DisbursementXTargetEnvironmentType)) .required() .messages({ 'string.base': '"environment" should be a type of \'text\'', 'string.empty': '"environment" cannot be an empty field', 'any.required': '"environment" is a required field', }), logger: joi_1.default.object().required().messages({ 'string.base': '"logger" should be a type of \'object\'', 'string.empty': '"logger" cannot be an empty field', 'any.required': '"logger" is a required field', }), }); /** * Orange Money API Disbursement. * @class */ class Disbursement { /** * Creates a new Disbursement object based on the provided configuration. * * @param {DisbursementServiceConfig} config - The configuration for the Disbursement object. * @return {Disbursement} A new Disbursement object based on the provided configuration. */ static createDisbursement(config) { switch (config.environment) { case constants_1.DisbursementXTargetEnvironmentType.prod: return new live_1.DisbursementLive(config); case constants_1.DisbursementXTargetEnvironmentType.sandbox: return new sandbox_1.DisbursementFake(config); } } } exports.Disbursement = Disbursement; //# sourceMappingURL=disbursement_service.js.map