liveperson-functions-cli
Version:
LivePerson Functions CLI
47 lines • 1.88 kB
JavaScript
;
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