airalo-sdk-type
Version:
UNOFFICIAL AIRALO API INTEGRATION FOR JAVASCRIPT/TYPESCRIPT
77 lines (76 loc) • 2.79 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getToken = exports.TOKEN = void 0;
const config_1 = require("../config");
const axios_master_1 = require("axios-master");
const form_data_1 = __importDefault(require("form-data"));
// Token авах дотоод функц
async function fetchToken(client_id, client_secret) {
const formData = new form_data_1.default();
formData.append("client_id", client_id);
formData.append("client_secret", client_secret);
formData.append("grant_type", "client_credentials");
const response = await (0, axios_master_1.axiosMasterLogger)({
method: "POST",
url: `${config_1.config.host}/v2/token`,
headers: {
Accept: "application/json",
...formData.getHeaders()
},
data: formData
}, {
name: "Token",
timeout: 20000,
logger: (data) => config_1.config.logger && console.log("Token:", data.json)
});
return response?.data?.access_token ?? "";
}
// Нэвтрэлт хийж token авах - гадаад ашиглалт
const TOKEN = async (auth) => {
try {
const token = await fetchToken(auth.client_id, auth.client_secret);
if (token) {
// Тохиргоонд хадгалах
config_1.config.token = token;
config_1.config.auth = auth;
return {
success: true,
data: { access_token: token },
message: "Token амжилттай авлаа."
};
}
return {
success: false,
data: null,
message: "Token авахад амжилтгүй болсон."
};
}
catch (error) {
const axiosError = error;
console.error("Token хүсэлт амжилтгүй:", axiosError.message);
return {
success: false,
data: null,
message: axiosError?.response?.data?.meta?.message ?? "Алдаа гарлаа."
};
}
};
exports.TOKEN = TOKEN;
// 401 алдааны үед автоматаар token шинэчлэх функц (axiosMasterLogger-т дамжуулна)
const getToken = async () => {
try {
const token = await fetchToken(config_1.config.auth.client_id, config_1.config.auth.client_secret);
if (token)
config_1.config.token = token;
return token;
}
catch (error) {
console.error("Token шинэчлэлт амжилтгүй:", error.message);
return "";
}
};
exports.getToken = getToken;
exports.default = { TOKEN: exports.TOKEN };