2025-03-27 Graph Use Case/CreateNode

From Izara Wiki
Jump to navigation Jump to search

CreateNode Function

Overview

Using Case

CreateNode with identifiers

Example Param

{
 "objType":{
    "serviceTag": "xxxx",
    "objectType": "yyyy",
 },
 "objInstanceFull":{
    "identifiers":{
       "xxxx" : "yyyy"
    },
    "fields":{
      // "optional"
      "xxxx" : "yyyy"
    }
 },
"relationships":[],
 "originTimestamp": 1234567890,
 "settings":{
    "updatePropertiesOnMatch": false 
 }
}

Example Output

{
 returnValue: {
   queryResult: {
     createdNode: {
       objType: {
         serviceTag: 'xxxx',
           objectType: 'yyyy'
       },
       properties: { //properties }
     },
     existsNode: null,
       userNode: {
       objType: { serviceTag: 'UserAccount', objectType: 'user' },
       properties: { userId: 'xxxx' }
     }
   },
   objType: { objectType: 'xxxx', serviceTag: 'yyyy' },
   objInstanceFull: {
     identifiers: { xxxx: 'yyyy' },
     fields: { // fields properties }
   },
   relationships: [],
     settings: { updatePropertiesOnMatch: false }
 }
}

CreateNode with versionedData

Example Param

{
 "objType": {
   "serviceTag": "xxxx"
   "objectType": "yyyy",
 },
 "objInstanceFull": {
   "identifiers": {
     "xxxx": "yyyy"
   },
   "fields": {
     "can send all fields of versionedData",
     "if send any fields of versionedData will be hook properties then return all "
 },
 “Relationship”: [],
 "originTimestamp": 1234567890,
 "callingFlow": "string"
}

Exmaple Output

{
  returnValue: {
    queryResult: {
      objTypes: [
        {
          serviceTag: "xxxx",
          objectType: "yyyy"
        }
      ],
      objInstanceFull: {
        identifiers: {
          //identifiers
        },
        fields: {
        // fields of main node
        }
      },
      existsNode: {},
      userNode: {
        objTypes: [
          {
            serviceTag: "UserAccount",
            objectType: "user"
          }
        ],
        properties: {
          userId: "xxxx"
        }
      },
      additionalReturn: {},
      relationships: []
    },
    objType: {
      objectType: "xxxx",
      serviceTag: "yyyy"
    },
    objInstanceFull: {
      identifiers: {
        // identifiers
      },
      fields: {
        //fields of main Node and versionedData
      }
    },
    relationships: [],
    settings: {
      updatePropertiesOnMatch: true
    }
  },
  status: "complete",
  errorsFound: [],
  graphServiceTag: "GraphHandler"
}

CreateNode with belongTo

  • Params like create basicNode & versionedData but in objectSchema optional has belongTo If in objectSchema have belongTo will create query and return dataStructure of belongTo
  • Must send : x-correlation-base-user-id : xxxx AND x-correlation-target-id : yyyy ( identifiers of that node)

CreateNode with extendObjtype

  • create objectSchema that have objectType for create main node eg. objectType: objectA then upload To S3
  • create objectSchemathat have extendObjtype for existParentNode eg. objectType: objectB then upload To S3
  • Send parameter with identifiers’s objectType of extendObjtype for create Node

CreateNode with targetNode

Example Param

{
   "objType": {
     "serviceTag": "xxxx",
     "objectType": "yyyy"
   },
   "objInstanceFull": {
     "identifiers": {
       "xxxx": "yyyy"
     },
     "fields": {
       // fields
     }
   },
   "relationships": [
     {
       "relType": {
         "serviceTag": "xxxx",
         "relationshipTag": "yyyy"
       },
       "relationshipProperties": {
        // optional
       },
"relationshipDirection": "from" 
       "targetObjType": {
         "serviceTag": "xxxx",
         "objectType": "yyyy"
       },
       "targetIdentifiers": {
         "xxxx": "yyyy"
       }
     }
   ],
   "originTimestamp": 1234567890,
   "settings": {
     "updatePropertiesOnMatch": true
   }
 }

Exmaple Output