open-api-aurum-connector2
Version:
Module to connect to the OPEN API Aurum Core
72 lines (56 loc) • 2.16 kB
JavaScript
const { module_name, configurations_key } = require("../../utils/Constants.js");
const { logger } = require("../../utils/Logger.js");
const login = require("../login");
//this method requiere user autentication, not clients
const address = async (cp, token = null) => {
try {
logger.info(`module-hub-aurum-core-connector :: get address "${module_name}" ...`);
const tokenApi = token || await generateToken();
if(!tokenApi) {
return {
responseCode: 401,
message: "A token is required to consume the API"
};
}
const config = global[configurations_key];
let endpoint = config?.onboarding?.address?.endpoint || "";
endpoint = endpoint.replace("{mgtwUrl}", config.mgtwUrl);
endpoint = endpoint.replace("{tenantName}", config.tenantName);
if(cp) {
endpoint = `${endpoint}?pc=${cp}`;
}
logger.info(`module-hub-aurum-core-connector :: get address to endpoint: ${endpoint}`);
const response = await fetch(endpoint, {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + tokenApi
}
});
const responseJson = await response.json();
logger.info(`module-hub-aurum-core-connector :: get address response: ${JSON.stringify(responseJson)}`);
return responseJson;
} catch (error) {
logger.error(`module-hub-aurum-core-connector :: Error getting address: ${error}`);
return {
responseCode: 500,
error: error,
message: "Error getting address",
};
}
};
const generateToken = async () => {
logger.info(`module-hub-aurum-core-connector :: No token in request, generating a client token`);
const resultLogin = await login({
grant_type: "client_credentials",
scope: "use_otp update_info_scope use_accounts use_payments use_profile use_cards use_profile_when_onboarding",
longitude: "90",
latitude: "90"
});
if (!resultLogin?.access_token) {
logger.info(`module-hub-aurum-core-connector :: Error login open api aurum :: ${loginCliet.error_description}`);
return null;
}
return resultLogin.access_token;
};
module.exports = address;