UNPKG

kotanipay-sdk

Version:

Official Kotani Pay SDK for Node.js and Browser

65 lines 2.48 kB
"use strict"; 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