2025-03-27 Graph Use Case/CreateNode: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
Line 155: Line 155:
         "// optional"
         "// optional"
       },
       },
"relationshipDirection": "from"  
      "relationshipDirection": "from"  
       "targetObjType": {
       "targetObjType": {
         "serviceTag": "xxxx",
         "serviceTag": "xxxx",
Line 177: Line 177:
   returnValue: {
   returnValue: {
     queryResult: {
     queryResult: {
       objTypes: [
       returnCreateNode: {
        {
          serviceTag: "xxxx",
          objectType: "yyyy"
        }
      ],
      objInstanceFull: {
        identifiers: {
          //identifiers
        },
        fields: {
          // fields of npde
        }
      },
      existsNode: {},
      userNode: {
         objTypes: [
         objTypes: [
           {
           {
             serviceTag: "UserAccount",
             serviceTag: "xxxx",
             objectType: "user"
             objectType: "yyyy"
           }
           }
         ],
         ],
        properties: {
          objInstanceFull: {
           userId: "xxxx"
           identifiers: {
        }
            //identifiers
      },
          },
      additionalReturn: {
          fields: {
         targetNode0: {
            // fields of npde
          }
        },
        existsNode: { },
         userNode: {
           objTypes: [
           objTypes: [
             {
             {
               serviceTag: "xxxx",
               serviceTag: "UserAccount",
               objectType: "yyyy"
               objectType: "user"
             }
             }
           ],
           ],
          properties: {
            properties: {
          // properties
            userId: "xxxx"
           }
           }
         }
         },
      },
        relationships: [
      relationships: [
          {
        {
            objTypes: [
          relType: {
              { serviceTag: 'string', objectType: 'string' }
            serviceTag: "xxxx",
            ],
            relationshipTag: "zzzz"
            objInstanceFull: {
          },
              identifiers: {
          relationshipProperties: {
                // identifiers
            relId: ""
              }
            // properties
            },
            relType: {
              serviceTag: 'string',
              relationshipTag: 'rel'
            },
            relationshipProperties: {
              // properties
            }
           }
           }
         }
         ]
      ]
    },
    objType: {
      objectType: "xxxx",
      serviceTag: "yyyy"
    },
    objInstanceFull: {
      identifiers: {
        //identifiers
      },
      fields: {
        // fields
       }
       }
     },
     },
     relationships: [
     requestParams: {
       {
       // return example send param
        relType: {
          serviceTag: "xxxx",
          relationshipTag: "zzzz"
        },
        relationshipProperties: { },
        targetObjType: {
          serviceTag: "xxxx",
          objectType: "yyyy"
        },
        targetIdentifiers: {
          // targetIdentifiers
        }
      }
    ],
    settings: {
      updatePropertiesOnMatch: true
     }
     }
   },
   },
   status: "complete",
   status: "complete",
  errorsFound: [],
    errorsFound: [],
  graphServiceTag: "GraphHandler"
      graphServiceTag: "GraphHandler"
}
}
</syntaxhighlight>
</syntaxhighlight>


[[Category:Working documents| 2025-03-27]]
[[Category:Working documents| 2025-03-27]]

Revision as of 06:03, 16 July 2025

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: {
      returnCreateNode: {
        objType: {
          serviceTag: 'xxxx',
            objectType: 'yyyy'
        },
        properties: { //properties }
        },
        existsNode: { },
        userNode: { // if has userNode send to createNode
          objType: { serviceTag: 'UserAccount', objectType: 'user' },
          properties: { userId: 'xxxx' }
        }
      }
    },
    requestParams: {
      // return example send param
    }
  },
  status: "string", // "complete' or "error"
  errorsFound: [],
  graphServiceTag: "GraphHandler"
}

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: {
      returnCreateNode: {
        objTypes: [
          {
            serviceTag: "xxxx",
            objectType: "yyyy"
          }
        ],
          objInstanceFull: {
          identifiers: {
            //identifiers
          },
          fields: {
            // fields of main node
          }
        },
        existsNode: { },
        userNode: {
          objTypes: [
            {
              serviceTag: "UserAccount",
              objectType: "user"
            }
          ],
            properties: {
            userId: "xxxx"
          }
        },
        relationships: []
      }
    },
    requestParams: {
      // return example send param
    }
  },
  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

{
  returnValue: {
    queryResult: {
      returnCreateNode: {
        objTypes: [
          {
            serviceTag: "xxxx",
            objectType: "yyyy"
          }
        ],
          objInstanceFull: {
          identifiers: {
            //identifiers
          },
          fields: {
            // fields of npde
          }
        },
        existsNode: { },
        userNode: {
          objTypes: [
            {
              serviceTag: "UserAccount",
              objectType: "user"
            }
          ],
            properties: {
            userId: "xxxx"
          }
        },
        relationships: [
          {
            objTypes: [
              { serviceTag: 'string', objectType: 'string' }
            ],
            objInstanceFull: {
              identifiers: {
                // identifiers
              }
            },
            relType: {
              serviceTag: 'string',
              relationshipTag: 'rel'
            },
            relationshipProperties: {
              // properties
            }
          }
        ]
      }
    },
    requestParams: {
      // return example send param
    }
  },
  status: "complete",
    errorsFound: [],
      graphServiceTag: "GraphHandler"
}