kotanipay-sdk
Version:
Official Kotani Pay SDK for Node.js and Browser
65 lines • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MobileMoneyService = void 0;
const validation_util_1 = require("../../utils/validation.util");
class MobileMoneyService {
constructor(httpClient) {
this.httpClient = httpClient;
}
validateCreateCustomerRequest(request) {
const requiredFields = [
'phone_number', 'country_code'
];
validation_util_1.ValidationUtil.validateRequiredFields(request, requiredFields);
validation_util_1.ValidationUtil.validatePhone(request.phone_number);
this.validateCountryCode(request.country_code);
if (request.network) {
this.validateNetwork(request.network);
}
}
validateCountryCode(countryCode) {
const validCountryCodes = [
'GHA', 'KEN', 'ZAC', 'CIV', 'ZMB', 'CMR', 'COD',
'SEN', 'TZM', 'MWI', 'UGA', 'ETH', 'GRW'
];
if (!validCountryCodes.includes(countryCode)) {
throw new Error(`Invalid country code. Must be one of: ${validCountryCodes.join(', ')}`);
}
}
validateNetwork(network) {
const validNetworks = [
'MPESA', 'MTN', 'AIRTEL', 'VODAFONE', 'TIGO', 'ORANGE',
'NOT_SUPPORTED', 'ZAMTEL', 'CHECKOUT', 'BKTRX', 'CRDTRX',
'MOOV', 'TMONEY', 'FREE', 'EXPRESSO', 'HALOPESA', 'VODACOM'
];
if (!validNetworks.includes(network)) {
throw new Error(`Invalid network. Must be one of: ${validNetworks.join(', ')}`);
}
}
async createCustomer(request) {
this.validateCreateCustomerRequest(request);
const response = await this.httpClient.post('/api/v3/customer/mobile-money', request);
return response.data;
}
/**
* Get all mobile money customers
* Requires API key authentication
*/
async getAllCustomers() {
const response = await this.httpClient.get('/api/v3/customer/mobile-money');
return response.data;
}
/**
* Get mobile money customer by ID
* Requires API key authentication
*/
async getCustomerById(customerId) {
if (!customerId) {
throw new Error('Customer ID is required');
}
const response = await this.httpClient.get(`/api/v3/customer/mobile-money/${customerId}`);
return response.data;
}
}
exports.MobileMoneyService = MobileMoneyService;
//# sourceMappingURL=mobile-money.service.js.map