@setu/upi-deep-links
Version:
NPM package to connect to Setu's UPI Deep Link APIs
60 lines • 4.93 kB
JavaScript
import axios from "axios";
import createAuthRefreshInterceptor from "axios-auth-refresh";
import { getJWTToken, getOAuthToken } from "./auth";
import { API } from "./types";
const genericSetuError = {
code: "unknown-error",
detail: "Something went wrong. Please try again in sometime.",
docURL: "",
title: "Unknown error",
errors: [],
traceID: "",
};
export 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);
}
};
export const getAxiosInstance = (params) => {
// eslint-disable-next-line functional/no-let
let token = "";
const collectAxiosInstance = axios.create({
headers: {
"X-Setu-Product-Instance-ID": params.productInstanceID,
},
});
collectAxiosInstance.interceptors.request.use(async (config) => {
if (params.authType === "JWT") {
token = getJWTToken(params.schemeID, params.secret);
}
else if (token === "" && config.url && !config.url.endsWith(API.FETCH_TOKEN)) {
token = await getOAuthToken(params.mode, params.schemeID, params.secret);
}
return {
...config,
headers: { ...config.headers, Authorization: token },
};
});
const refreshAuth = async (failedRequest) => {
token = await getOAuthToken(params.mode, params.schemeID, params.secret);
if (failedRequest.response) {
// eslint-disable-next-line functional/immutable-data
failedRequest.response.config.headers = {
...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?
createAuthRefreshInterceptor(collectAxiosInstance, refreshAuth, {
statusCodes: [401, 403],
});
}
return collectAxiosInstance;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBeUMsTUFBTSxPQUFPLENBQUM7QUFDOUQsT0FBTyw0QkFBNEIsTUFBTSxvQkFBb0IsQ0FBQztBQUk5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUEyQyxNQUFNLFNBQVMsQ0FBQztBQUV2RSxNQUFNLGdCQUFnQixHQUFjO0lBQ2hDLElBQUksRUFBRSxlQUFlO0lBQ3JCLE1BQU0sRUFBRSxxREFBcUQ7SUFDN0QsTUFBTSxFQUFFLEVBQUU7SUFDVixLQUFLLEVBQUUsZUFBZTtJQUN0QixNQUFNLEVBQUUsRUFBRTtJQUNWLE9BQU8sRUFBRSxFQUFFO0NBQ2QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBNEMsRUFBRSxFQUFFO0lBQzdFLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1FBQ3JGLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNwRDtTQUFNO1FBQ0gsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDM0M7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQTZCLEVBQUUsRUFBRTtJQUM5RCw2Q0FBNkM7SUFDN0MsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RDLE9BQU8sRUFBRTtZQUNMLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7U0FDekQ7S0FDSixDQUFDLENBQUM7SUFFSCxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1FBQy9FLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDM0IsS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2RDthQUFNLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVFLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVFO1FBRUQsT0FBTztZQUNILEdBQUcsTUFBTTtZQUNULE9BQU8sRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO1NBQ3ZELENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxhQUF5QixFQUFtQixFQUFFO1FBQ3JFLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpFLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUN4QixxREFBcUQ7WUFDckQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHO2dCQUNwQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQ3hDLGFBQWEsRUFBRSxLQUFLO2FBQ3ZCLENBQUM7U0FDTDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUMsQ0FBQztJQUVGLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7UUFDN0Isa0VBQWtFO1FBQ2xFLDRCQUE0QixDQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBRTtZQUM1RCxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1NBQzFCLENBQUMsQ0FBQztLQUNOO0lBRUQsT0FBTyxvQkFBb0IsQ0FBQztBQUNoQyxDQUFDLENBQUMifQ==