UNPKG

liveperson-functions-cli

Version:
47 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.lpClientFactory = void 0; const const_1 = require("../shared/const"); const oauthGenerator_1 = require("../shared/oauthGenerator"); const lpClientFactory = (csdsClient, secretClient, httpClient) => { const getAppKeyCredentials = async (secretName) => { try { const { value } = await secretClient.readSecret(secretName); return value; } catch (error) { throw new Error(`Could not fetch App Key credentials from secret storage: ${error.message}`); } }; const getOauthHeader = (request, { consumerKey, consumerSecret, token, tokenSecret }) => { const oauthClient = (0, oauthGenerator_1.createOauthClient)({ consumerKey, consumerSecret, }); return (0, oauthGenerator_1.createOauthHeader)(oauthClient, { token, tokenSecret, }, request); }; return async (service, path, { appKeySecretName = const_1.defaultAppKeySecretName, method = 'GET', ...options }) => { const host = await csdsClient.get(service); if (!host) { throw new Error(`Service "${service}" could not be found.`); } const baseUrl = `https://${host}`; const apiKeyCreds = await getAppKeyCredentials(appKeySecretName); const requestOptions = { ...options, baseUrl, method }; const oauthHeader = getOauthHeader({ url: `${baseUrl}${path}`, method: requestOptions.method, body: requestOptions.body, }, apiKeyCreds); requestOptions.headers = { ...requestOptions.headers, ...oauthHeader, }; return httpClient(path, requestOptions); }; }; exports.lpClientFactory = lpClientFactory; //# sourceMappingURL=LpClient.js.map