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 }; };