From c7ecfff0152f1de4e6b7e112d80fa8da427cbab4 Mon Sep 17 00:00:00 2001 From: Peter Morton Date: Mon, 3 Feb 2025 18:41:32 +0000 Subject: [PATCH] Initial Commit --- CACaseInterface.js | 100 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 CACaseInterface.js diff --git a/CACaseInterface.js b/CACaseInterface.js new file mode 100644 index 0000000..5b9c80c --- /dev/null +++ b/CACaseInterface.js @@ -0,0 +1,100 @@ +const casettings = CAInterface_settings_6516d8858854895aca35b3b4; + +return { + getCase(caseId) { + return new Promise(async (resolve, reject) => { + try { + const config = casettings.url.CA; + const getCaseURL = `https://${config.base}/case-service/${config.tenant}/cases/${caseId}`; + const oidc = await CAInterface_6516d8858854895aca35b3b4().getOIDC(); + const result = await axios({ + method: "get", + url: getCaseURL, + headers: { + Accept: "application/ld+json", + "Content-Type": "application/json", + Authorization: `OIDC_id_token ${oidc.access_token}`, + }, + }); + if (result.status == 200) { + resolve(result.data); + } else { + reject(result.status); + } + } catch (err) { + reject(err); + } + }); + }, + caseAction(caseId, action, success, notes, entities) { + return new Promise(async (resolve, reject) => { + try { + const config = casettings.url.CA; + const caseActionURL = `https://${config.base}/case-service-v2/${config.tenant}/cases/${caseId}/actions/${action}`; + const oidc = await CAInterface_6516d8858854895aca35b3b4().getOIDC(); + const result = await axios({ + method: "POST", + url: caseActionURL, + headers: { + Accept: "*/*", + "Content-Type": "application/json", + Authorization: `OIDC_id_token ${oidc.access_token}`, + }, + data: { + actionSucceded: success, + notes, + entities, + }, + }); + if (result.status == 200) { + resolve(result.data); + } else { + reject(result.status); + } + } catch (err) { + reject(err); + } + }); + }, + createCase(type, customerRef, summary, notes, entities) { + return new Promise(async (resolve, reject) => { + try { + const config = casettings.url.CA; + const caseActionURL = `https://${config.base}/case-service/${config.tenant}/cases`; + const oidc = await CAInterface_6516d8858854895aca35b3b4().getOIDC(); + const data = { + "@type": type, + summary: summary, + notes: notes, + associatedCustomers: [ + { + "@type": "vcs:CustomerAssociation", + isPrimary: true, + "vcust:identifier": customerRef, + }, + ], + ...entities, + }; + console.log("CACaseInterface: sending data " + JSON.stringify(data)); + const result = await axios({ + method: "POST", + url: caseActionURL, + headers: { + Accept: "*/*", + "Content-Type": "application/ld+json", + Authorization: `OIDC_id_token ${oidc.access_token}`, + }, + data: data, + }); + + if (result.status == 201) { + resolve(result.data); + } else { + reject(result.status); + } + } catch (err) { + reject(err); + } + }); + }, +}; \ No newline at end of file