@setu/upi-deep-links
Version:
NPM package to connect to Setu's UPI Deep Link APIs
62 lines • 5.26 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAxiosInstance = exports.setuErrorHandler = void 0;
const axios_1 = __importDefault(require("axios"));
const axios_auth_refresh_1 = __importDefault(require("axios-auth-refresh"));
const auth_1 = require("./auth");
const types_1 = require("./types");
const genericSetuError = {
code: "unknown-error",
detail: "Something went wrong. Please try again in sometime.",
docURL: "",
title: "Unknown error",
errors: [],
traceID: "",
};
const setuErrorHandler = (error) => {
if (error.response && !(error.response.status === 401 || error.response.status === 403)) {
return Promise.reject(error.response.data.error);
}
else {
return Promise.reject(genericSetuError);
}
};
exports.setuErrorHandler = setuErrorHandler;
const getAxiosInstance = (params) => {
// eslint-disable-next-line functional/no-let
let token = "";
const collectAxiosInstance = axios_1.default.create({
headers: {
"X-Setu-Product-Instance-ID": params.productInstanceID,
},
});
collectAxiosInstance.interceptors.request.use(async (config) => {
if (params.authType === "JWT") {
token = (0, auth_1.getJWTToken)(params.schemeID, params.secret);
}
else if (token === "" && config.url && !config.url.endsWith(types_1.API.FETCH_TOKEN)) {
token = await (0, auth_1.getOAuthToken)(params.mode, params.schemeID, params.secret);
}
return Object.assign(Object.assign({}, config), { headers: Object.assign(Object.assign({}, config.headers), { Authorization: token }) });
});
const refreshAuth = async (failedRequest) => {
token = await (0, auth_1.getOAuthToken)(params.mode, params.schemeID, params.secret);
if (failedRequest.response) {
// eslint-disable-next-line functional/immutable-data
failedRequest.response.config.headers = Object.assign(Object.assign({}, failedRequest.response.config.headers), { Authorization: token });
}
return token;
};
if (params.authType === "OAUTH") {
// TODO: What happens in case of 403 due to actual lack of access?
(0, axios_auth_refresh_1.default)(collectAxiosInstance, refreshAuth, {
statusCodes: [401, 403],
});
}
return collectAxiosInstance;
};
exports.getAxiosInstance = getAxiosInstance;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUE4RDtBQUM5RCw0RUFBOEQ7QUFJOUQsaUNBQW9EO0FBQ3BELG1DQUF1RTtBQUV2RSxNQUFNLGdCQUFnQixHQUFjO0lBQ2hDLElBQUksRUFBRSxlQUFlO0lBQ3JCLE1BQU0sRUFBRSxxREFBcUQ7SUFDN0QsTUFBTSxFQUFFLEVBQUU7SUFDVixLQUFLLEVBQUUsZUFBZTtJQUN0QixNQUFNLEVBQUUsRUFBRTtJQUNWLE9BQU8sRUFBRSxFQUFFO0NBQ2QsQ0FBQztBQUVLLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUE0QyxFQUFFLEVBQUU7SUFDN0UsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLEVBQUU7UUFDckYsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BEO1NBQU07UUFDSCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUMzQztBQUNMLENBQUMsQ0FBQztBQU5XLFFBQUEsZ0JBQWdCLG9CQU0zQjtBQUVLLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUE2QixFQUFFLEVBQUU7SUFDOUQsNkNBQTZDO0lBQzdDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVmLE1BQU0sb0JBQW9CLEdBQUcsZUFBSyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxPQUFPLEVBQUU7WUFDTCw0QkFBNEIsRUFBRSxNQUFNLENBQUMsaUJBQWlCO1NBQ3pEO0tBQ0osQ0FBQyxDQUFDO0lBRUgsb0JBQW9CLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQTBCLEVBQUUsRUFBRTtRQUMvRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQzNCLEtBQUssR0FBRyxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkQ7YUFBTSxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM1RSxLQUFLLEdBQUcsTUFBTSxJQUFBLG9CQUFhLEVBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM1RTtRQUVELHVDQUNPLE1BQU0sS0FDVCxPQUFPLGtDQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUUsYUFBYSxFQUFFLEtBQUssT0FDcEQ7SUFDTixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxhQUF5QixFQUFtQixFQUFFO1FBQ3JFLEtBQUssR0FBRyxNQUFNLElBQUEsb0JBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpFLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUN4QixxREFBcUQ7WUFDckQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxtQ0FDOUIsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUN4QyxhQUFhLEVBQUUsS0FBSyxHQUN2QixDQUFDO1NBQ0w7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1FBQzdCLGtFQUFrRTtRQUNsRSxJQUFBLDRCQUE0QixFQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBRTtZQUM1RCxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzFCLENBQUMsQ0FBQztLQUNOO0lBRUQsT0FBTyxvQkFBb0IsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUE3Q1csUUFBQSxnQkFBZ0Isb0JBNkMzQiJ9