JSFiddle - React, Tailwind, and code Playground
by Taleeb Anwar
JavaScript
var properties = [];
var headers = [];
function transform(message, output) {
var currentDate = new Date();
var formattedDate = currentDate.toISOString();
var guid = generateUUID();
output["key"] = getKey(message);
output["key_schema_id"] = properties["key_schema_id"];
output["event_schema_id"] = properties["event_schema_id"];
output.event = getMessageHeaders(formattedDate, guid);
output.event.customerLifecycleEvent = [];
output.event.customerLifecycleEvent.push(getCustomerLifecycleEvents(message, formattedDate, guid));
var x = traverse(output);
console.log(x);
}
function traverse(jsonObj) {
if (jsonObj != null && typeof jsonObj == "object") {
Object.entries(jsonObj).forEach(([key, value]) => {
// key is either an array index or object key
if (key == "string" && value == null) {
jsonObj = null;
}
else{jsonObj[key] = traverse(value);
}
});
return jsonObj;
} else {
return jsonObj;
}
}
function getKey(message) {
var caseId;
var ref;
if (message["dbo.Case"]) {
caseId = message["dbo.Case"].Items[0].Id;
}
if (message["cba.LegalEntityExtension"]) {
ref = message["cba.LegalEntityExtension"].Items[0].CBA_ReferenceId;
}
return (caseId + '-' + ref)
}
function getMessageHeaders(currentDateTime, guid) {
var evntData = {
"header": {
"correlationId": {
"string": guid
},
"processPath": {
"array": [{
"source": properties["source"],
"timestamp": currentDateTime
}]
}
},
"messageHeader": {
"sourceCorrelationId": {
"string": guid
},
"sourceSystem": {
"string": "Fenergo"
},
"eventSchemaId": {
"string": properties["event_schema_id"]
},
"event": {
"id": {
"string": guid
},
"eventType": {
"string": properties["eventType"]
},
"eventDate": {
"string":...