@spreeloop/orange_money
Version:
A orange money api integration package
84 lines • 3.73 kB
JavaScript
"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