UNPKG

airalo-sdk-type

Version:

UNOFFICIAL AIRALO API INTEGRATION FOR JAVASCRIPT/TYPESCRIPT

284 lines (283 loc) 11.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GetOrderStatusBySlug = exports.GetOrderStatuses = exports.GetOrder = exports.GetOrderList = exports.SubmitTopUpOrder = exports.SubmitOrderAsync = exports.SubmitOrder = void 0; const config_1 = require("../config"); const axios_master_1 = require("axios-master"); const form_data_1 = __importDefault(require("form-data")); const auth_1 = require("./auth"); // Захиалга өгөх (синхрон) const SubmitOrder = async (params) => { try { const formData = new form_data_1.default(); formData.append("quantity", params.quantity); formData.append("package_id", params.package_id); if (params.type) formData.append("type", params.type); if (params.description) formData.append("description", params.description); if (params.brand_settings_name) formData.append("brand_settings_name", params.brand_settings_name); const result = await (0, axios_master_1.axiosMasterLogger)({ method: "POST", url: `${config_1.config.host}/v2/orders`, headers: { Accept: "application/json", Authorization: `Bearer ${config_1.config.token}`, ...formData.getHeaders() }, data: formData }, { name: "SubmitOrder", timeout: 30000, retryFunction: auth_1.getToken, shouldRetry: true, shouldRetryStatus: [401], logger: (data) => config_1.config.logger && console.log("SubmitOrder:", data.json) }); return { success: true, data: result.data ?? null, message: "Амжилттай." }; } catch (error) { const axiosError = error; console.error("SubmitOrder амжилтгүй:", axiosError.message); return { success: false, data: null, message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа." }; } }; exports.SubmitOrder = SubmitOrder; // Захиалга өгөх (асинхрон - webhook-р хариу авна) const SubmitOrderAsync = async (params) => { try { const formData = new form_data_1.default(); formData.append("quantity", params.quantity); formData.append("package_id", params.package_id); if (params.type) formData.append("type", params.type); if (params.description) formData.append("description", params.description); if (params.brand_settings_name) formData.append("brand_settings_name", params.brand_settings_name); if (params.webhook_url) formData.append("webhook_url", params.webhook_url); if (params.to_email) formData.append("to_email", params.to_email); // Array параметрүүдийг нэг бүрчлэн нэмэх params.sharing_option?.forEach((opt) => formData.append("sharing_option[]", opt)); params.copy_address?.forEach((addr) => formData.append("copy_address[]", addr)); const result = await (0, axios_master_1.axiosMasterLogger)({ method: "POST", url: `${config_1.config.host}/v2/orders-async`, headers: { Accept: "application/json", Authorization: `Bearer ${config_1.config.token}`, ...formData.getHeaders() }, data: formData }, { name: "SubmitOrderAsync", timeout: 30000, retryFunction: auth_1.getToken, shouldRetry: true, shouldRetryStatus: [401], logger: (data) => config_1.config.logger && console.log("SubmitOrderAsync:", data.json) }); return { success: true, data: result.data ?? null, message: "Захиалга дараачийн боловсруулалтад орлоо." }; } catch (error) { const axiosError = error; console.error("SubmitOrderAsync амжилтгүй:", axiosError.message); return { success: false, data: null, message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа." }; } }; exports.SubmitOrderAsync = SubmitOrderAsync; // Top-up захиалга өгөх const SubmitTopUpOrder = async (params) => { try { const formData = new form_data_1.default(); formData.append("package_id", params.package_id); formData.append("iccid", params.iccid); if (params.description) formData.append("description", params.description); const result = await (0, axios_master_1.axiosMasterLogger)({ method: "POST", url: `${config_1.config.host}/v2/orders/topups`, headers: { Accept: "application/json", Authorization: `Bearer ${config_1.config.token}`, ...formData.getHeaders() }, data: formData }, { name: "SubmitTopUpOrder", timeout: 30000, retryFunction: auth_1.getToken, shouldRetry: true, shouldRetryStatus: [401], logger: (data) => config_1.config.logger && console.log("SubmitTopUpOrder:", data.json) }); return { success: true, data: result.data ?? null, message: "Амжилттай." }; } catch (error) { const axiosError = error; console.error("SubmitTopUpOrder амжилтгүй:", axiosError.message); return { success: false, data: null, message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа." }; } }; exports.SubmitTopUpOrder = SubmitTopUpOrder; // Захиалгын жагсаалтыг авах const GetOrderList = async (params = {}) => { try { const result = await (0, axios_master_1.axiosMasterLogger)({ method: "GET", url: `${config_1.config.host}/v2/orders`, headers: { Accept: "application/json", Authorization: `Bearer ${config_1.config.token}` }, params }, { name: "GetOrderList", timeout: 20000, retryFunction: auth_1.getToken, shouldRetry: true, shouldRetryStatus: [401], logger: (data) => config_1.config.logger && console.log("GetOrderList:", data.json) }); return { success: true, data: result.data ?? [], message: "Амжилттай.", meta: result.meta }; } catch (error) { const axiosError = error; console.error("GetOrderList амжилтгүй:", axiosError.message); return { success: false, data: null, message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа." }; } }; exports.GetOrderList = GetOrderList; // Нэг захиалгын дэлгэрэнгүйг авах const GetOrder = async (order_id) => { try { const result = await (0, axios_master_1.axiosMasterLogger)({ method: "GET", url: `${config_1.config.host}/v2/orders/${order_id}`, headers: { Accept: "application/json", Authorization: `Bearer ${config_1.config.token}` } }, { name: "GetOrder", timeout: 20000, retryFunction: auth_1.getToken, shouldRetry: true, shouldRetryStatus: [401], logger: (data) => config_1.config.logger && console.log("GetOrder:", data.json) }); return { success: true, data: result.data ?? null, message: "Амжилттай." }; } catch (error) { const axiosError = error; console.error("GetOrder амжилтгүй:", axiosError.message); return { success: false, data: null, message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа." }; } }; exports.GetOrder = GetOrder; // Захиалгын статусуудын жагсаалтыг авах const GetOrderStatuses = async (params) => { try { const result = await (0, axios_master_1.axiosMasterLogger)({ method: "GET", url: `${config_1.config.host}/v2/orders/statuses`, headers: { Accept: "application/json", Authorization: `Bearer ${config_1.config.token}` }, params }, { name: "GetOrderStatuses", timeout: 20000, retryFunction: auth_1.getToken, shouldRetry: true, shouldRetryStatus: [401], logger: (data) => config_1.config.logger && console.log("GetOrderStatuses:", data.json) }); return { success: true, data: result.data ?? [], message: "Амжилттай." }; } catch (error) { const axiosError = error; console.error("GetOrderStatuses амжилтгүй:", axiosError.message); return { success: false, data: null, message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа." }; } }; exports.GetOrderStatuses = GetOrderStatuses; // Тодорхой нэрийн захиалгын статусыг авах const GetOrderStatusBySlug = async (slug) => { try { const result = await (0, axios_master_1.axiosMasterLogger)({ method: "GET", url: `${config_1.config.host}/v2/orders/statuses/${slug}`, headers: { Accept: "application/json", Authorization: `Bearer ${config_1.config.token}` } }, { name: "GetOrderStatusBySlug", timeout: 20000, retryFunction: auth_1.getToken, shouldRetry: true, shouldRetryStatus: [401], logger: (data) => config_1.config.logger && console.log("GetOrderStatusBySlug:", data.json) }); return { success: true, data: result.data ?? null, message: "Амжилттай." }; } catch (error) { const axiosError = error; console.error("GetOrderStatusBySlug амжилтгүй:", axiosError.message); return { success: false, data: null, message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа." }; } }; exports.GetOrderStatusBySlug = GetOrderStatusBySlug; exports.default = { SubmitOrder: exports.SubmitOrder, SubmitOrderAsync: exports.SubmitOrderAsync, SubmitTopUpOrder: exports.SubmitTopUpOrder, GetOrderList: exports.GetOrderList, GetOrder: exports.GetOrder, GetOrderStatuses: exports.GetOrderStatuses, GetOrderStatusBySlug: exports.GetOrderStatusBySlug };