UNPKG

open-api-aurum-connector2

Version:

Module to connect to the OPEN API Aurum Core

72 lines (56 loc) 2.16 kB
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;