UNPKG

verimor-api-sdk

Version:
55 lines 2.22 kB
"use strict"; 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