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":...