airalo-sdk-type
Version:
UNOFFICIAL AIRALO API INTEGRATION FOR JAVASCRIPT/TYPESCRIPT
284 lines (283 loc) • 11.2 kB
JavaScript
"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
};