Updating Context Service example
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
function toCustomISOString(date) {
|
||||
// Ensure input is a Date object
|
||||
if (!(date instanceof Date)) throw new Error("Input must be a Date object");
|
||||
// Get ISO string, then trim to 3 ms digits and add 'Z'
|
||||
return date.toISOString().replace(/\d{3}Z$/, match => match.slice(0, 3) + 'Z');
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
/**
|
||||
*
|
||||
* @param {String} customerId Customer identifier (i.e. 10000050)
|
||||
* @param {[String]} notes Array on notes
|
||||
* @param {Date} startTime Start time of the interaction
|
||||
* @param {Date} endTime End time of the interaction
|
||||
* @param {String} external URL
|
||||
*/
|
||||
post(customerId, notes, startTime, endTime, url) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
const OIDC = await CAInterface().getOIDC();
|
||||
let config = CAInterface().settings().url.CA;
|
||||
const contextServiceURL = `https://${config.base}/context-service/${config.tenant}/contexts`;
|
||||
|
||||
const { data } = await CAInterface().axios("contextService", {
|
||||
method: "post",
|
||||
url: contextServiceURL,
|
||||
headers: {
|
||||
"Content-Type": "application/ld+json",
|
||||
Authorization: `OIDC_id_token ${OIDC.access_token}`,
|
||||
},
|
||||
data: {
|
||||
"@type": "vctx:Context",
|
||||
"vctx:contacts": [
|
||||
{
|
||||
"@type": "vctc:ExternalContact",
|
||||
"vctc:subtype": "iva",
|
||||
"vctc:direction": "vctc:inbound",
|
||||
"vctc:startTime": toCustomISOString(startTime),
|
||||
"vctc:endTime": toCustomISOString(endTime),
|
||||
"vctc:externalUrl": url,
|
||||
"vctc:notes": notes,
|
||||
},
|
||||
],
|
||||
"vctx:customer": {
|
||||
"@type": "vcust:Customer",
|
||||
"vcust:identifier": `${customerId}`,
|
||||
},
|
||||
},
|
||||
});
|
||||
console.log({
|
||||
contextServiceData: data,
|
||||
});
|
||||
resolve();
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user