afrimomo-sdk
Version:
A unified SDK for African payment providers
58 lines • 2.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NetworkManager = void 0;
const axios_1 = __importDefault(require("axios"));
const constants_1 = require("@afrimomo-sdk/config/constants");
const logger_1 = require("@afrimomo-sdk/utils/logger");
class NetworkManager {
axiosInstance;
constructor(jwt, environment = "DEVELOPMENT") {
const baseURL = environment === constants_1.ENVIRONMENTS.PRODUCTION ? constants_1.URLS.PRODUCTION : constants_1.URLS.SANDBOX;
logger_1.logger.info("Initializing NetworkManager", {
environment,
baseURL,
});
const headers = {};
if (jwt) {
headers.Authorization = `Bearer ${jwt}`;
}
this.axiosInstance = axios_1.default.create({
baseURL,
headers,
});
this.setupInterceptors();
}
getInstance() {
return this.axiosInstance;
}
handleErrors(error) {
logger_1.logger.error("Error occurred", error);
let errorMessage = "An unknown error occurred";
let statusCode = 500;
let errorObject = "{}";
if (axios_1.default.isAxiosError(error) && error.response) {
statusCode = error.response.status;
try {
const data = error.response.data;
errorMessage = data.message || data.error || errorMessage;
errorObject = JSON.stringify(data);
}
catch {
errorMessage = "Failed to parse error response";
}
}
return {
errorMessage,
statusCode,
errorObject,
};
}
setupInterceptors() {
this.axiosInstance.interceptors.response.use((response) => response, (error) => Promise.reject(error));
}
}
exports.NetworkManager = NetworkManager;
//# sourceMappingURL=network.js.map