194 lines
5.9 KiB
JavaScript
194 lines
5.9 KiB
JavaScript
import axios from "axios";
|
|
import { hashAPIPath, consoleLogger } 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/";
|
|
|
|
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,
|
|
},
|
|
};
|
|
};
|
|
|
|
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(consoleLogger(error));
|
|
//console.log("thiserror", error);
|
|
return JSON.stringify(error);
|
|
});
|
|
};
|
|
|
|
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;
|
|
},
|
|
};
|