import axios from "axios"; import { hashAPIPath } from "./"; const configEndpoint = process.env.GG_PROVIDER_CONFIG_ENDPOINT; const ggClientID = process.env.GG_CLIENT_ID; const ggClientSecret = process.env.GG_CLIENT_SECRET; const WEBAPI_URL = process.env.RELAY_ROOT || "https://dev-pedw-ns.servicebus.windows.net/dev-pedw-hc/"; export const getProviderConfig = () => { return axios .get(configEndpoint) .then((res) => res.data) .catch((error) => { console.log("error :", error.response); // return error; }); }; export const getGGToken = (tokenURL, authCode, redirectUri) => { const tokenBody = "grant_type=authorization_code" + "&code=" + authCode + "&redirect_uri=" + redirectUri; const basicAuthBase64 = (ggClientID + ":" + ggClientSecret).toString(); //console.log("base64 " + Base64.encode(basicAuthBase64)); const tokenConfig = { headers: { "Content-Type": "application/x-www-form-urlencoded", "Authorization": "Basic " + Base64.encode(basicAuthBase64), }, }; return axios .post(tokenURL, tokenBody, tokenConfig) .then((res) => res.data) .catch((error) => { // if (error.response) { // console.log(error.response.data); // console.log(error.response.status); // console.log(error.response.headers); // } return error.response; }); }; export const getUserInfo = (userInfoURL, authToken) => { const tokenConfig = { headers: { "Authorization": "Bearer " + authToken, }, }; return axios .get(userInfoURL, tokenConfig) .then((res) => res) .catch((error) => { //console.log(`Error: ${err?.response?.data}`); //return error; }); }; export const getPortalLogin = (emailAddress, token) => { var queryUrl = "contacts?$filter=emailaddress1 eq '" + emailAddress + "'&$count=true&$select=emailaddress1,contactid,pinswg_custom_password,yomifullname,firstname,lastname"; return axios .get(WEBAPI_URL + queryUrl + hashAPIPath(queryUrl), azureHeaders(token)) .then((res) => res.data) .catch((error) => { console.log("thiserror", error); }); }; const azureHeaders = (access_token) => { return { headers: { "OData-MaxVersion": "4.0", "OData-Version": "4.0", "Accept": "application/json;odata.metadata=none", "Prefer": 'odata.include-annotations="*",return=representation', "Content-Type": "application/json", "Authorization": "Bearer " + access_token, }, }; }; var Base64 = { _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (e) { var t = ""; var n, r, i, s, o, u, a; var f = 0; e = Base64._utf8_encode(e); while (f < e.length) { n = e.charCodeAt(f++); r = e.charCodeAt(f++); i = e.charCodeAt(f++); s = n >> 2; o = ((n & 3) << 4) | (r >> 4); u = ((r & 15) << 2) | (i >> 6); a = i & 63; if (isNaN(r)) { u = a = 64; } else if (isNaN(i)) { a = 64; } t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a); } return t; }, decode: function (e) { var t = ""; var n, r, i; var s, o, u, a; var f = 0; //e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (f < e.length) { s = this._keyStr.indexOf(e.charAt(f++)); o = this._keyStr.indexOf(e.charAt(f++)); u = this._keyStr.indexOf(e.charAt(f++)); a = this._keyStr.indexOf(e.charAt(f++)); n = (s << 2) | (o >> 4); r = ((o & 15) << 4) | (u >> 2); i = ((u & 3) << 6) | a; t = t + String.fromCharCode(n); if (u != 64) { t = t + String.fromCharCode(r); } if (a != 64) { t = t + String.fromCharCode(i); } } t = Base64._utf8_decode(t); return t; }, _utf8_encode: function (e) { e = e.replace(/\r\n/g, "\n"); var t = ""; for (var n = 0; n < e.length; n++) { var r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); } else if (r > 127 && r < 2048) { t += String.fromCharCode((r >> 6) | 192); t += String.fromCharCode((r & 63) | 128); } else { t += String.fromCharCode((r >> 12) | 224); t += String.fromCharCode(((r >> 6) & 63) | 128); t += String.fromCharCode((r & 63) | 128); } } return t; }, _utf8_decode: function (e) { var t = ""; var n = 0; var r = (c1 = c2 = 0); while (n < e.length) { r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode(((r & 31) << 6) | (c2 & 63)); n += 2; } else { c2 = e.charCodeAt(n + 1); c3 = e.charCodeAt(n + 2); t += String.fromCharCode( ((r & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63) ); n += 3; } } return t; }, };