77 lines
1.9 KiB
JavaScript
77 lines
1.9 KiB
JavaScript
import axios from "axios";
|
|
import { azureHeaders } from "../../../actions/core/headers";
|
|
import { consoleLogger } from "../../../actions/core/logger";
|
|
import { getToken } from "../../../actions/core/token";
|
|
import { hashAPIPath } from "../../../actions/core/hash";
|
|
import { respondError, respondSuccess } from "./apiResponse";
|
|
|
|
const WEBAPI_URL =
|
|
process.env.RELAY_ROOT ||
|
|
"https://dev-pedw-ns.servicebus.windows.net/dev-pedw-hc/";
|
|
|
|
export const relayGet = async ({
|
|
queryUrl,
|
|
res,
|
|
errorResponse,
|
|
transformData,
|
|
requestOptionsBuilder
|
|
}) => {
|
|
try {
|
|
const { data, accessToken } = await relayGetData({
|
|
queryUrl,
|
|
requestOptionsBuilder
|
|
});
|
|
|
|
return respondSuccess(
|
|
res,
|
|
typeof transformData === "function"
|
|
? await transformData(data, accessToken)
|
|
: data
|
|
);
|
|
} catch (error) {
|
|
consoleLogger(error);
|
|
return respondError(res, errorResponse);
|
|
}
|
|
};
|
|
|
|
export const relayGetData = async ({
|
|
queryUrl,
|
|
requestOptionsBuilder,
|
|
accessToken
|
|
}) => {
|
|
return forwardGetData({
|
|
queryUrl,
|
|
requestOptionsBuilder,
|
|
accessToken
|
|
});
|
|
};
|
|
|
|
export const forwardGetData = async ({
|
|
baseUrl,
|
|
queryUrl,
|
|
requestOptionsBuilder,
|
|
accessToken,
|
|
appendHash = true
|
|
}) => {
|
|
const tokenAccessToken =
|
|
typeof accessToken === "string" && accessToken.length > 0
|
|
? accessToken
|
|
: (await getToken()).access_token;
|
|
|
|
const resolvedBaseUrl = baseUrl || WEBAPI_URL;
|
|
const finalUrl =
|
|
resolvedBaseUrl + queryUrl + (appendHash ? hashAPIPath(queryUrl) : "");
|
|
|
|
const { data } = await axios.get(
|
|
finalUrl,
|
|
typeof requestOptionsBuilder === "function"
|
|
? requestOptionsBuilder(tokenAccessToken)
|
|
: azureHeaders(tokenAccessToken)
|
|
);
|
|
|
|
return {
|
|
data,
|
|
accessToken: tokenAccessToken
|
|
};
|
|
};
|