verimor-api-sdk
Version:
A NodeJS SDK for the Verimor API
55 lines • 2.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseApi = void 0;
const axios_1 = __importDefault(require("axios"));
const https_proxy_agent_1 = require("https-proxy-agent");
/**
* BaseApi class sets up the Axios instance with authentication and optional proxy settings.
*/
class BaseApi {
/**
* Creates an instance of BaseApi.
* @param username - The API username.
* @param password - The API password.
* @param proxyConfig - Optional proxy configuration.
*/
constructor(username, password, proxyConfig) {
this.username = username;
this.password = password;
const axiosConfig = {
baseURL: 'https://sms.verimor.com.tr/v2',
};
if (proxyConfig) {
const proxyAuth = proxyConfig.auth && proxyConfig.auth.username && proxyConfig.auth.password
? `${proxyConfig.auth.username}:${proxyConfig.auth.password}@`
: '';
const proxyUrl = `http://${proxyAuth}${proxyConfig.host}:${proxyConfig.port}`;
// Create an HTTPS proxy agent
const agent = new https_proxy_agent_1.HttpsProxyAgent(proxyUrl);
axiosConfig.httpsAgent = agent;
axiosConfig.proxy = false; // Disable default proxy handling
}
this.apiClient = axios_1.default.create(axiosConfig);
}
/**
* Prepares data by adding username and password.
* @param data - The request data.
* @returns The data with credentials added.
*/
withCredentials(data) {
return Object.assign({ username: this.username, password: this.password }, data);
}
/**
* Prepares params by adding username and password.
* @param params - The query parameters.
* @returns The params with credentials added.
*/
withCredentialsParams(params) {
return Object.assign({ username: this.username, password: this.password }, params);
}
}
exports.BaseApi = BaseApi;
//# sourceMappingURL=base-api.js.map