2025-03-27 Graph Use Case/CreateNode: Difference between revisions
Jump to navigation
Jump to search
| (10 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
= Overview = | = Overview = | ||
= | = Use Case = | ||
== CreateNode with identifiers == | == CreateNode with identifiers == | ||
'''Example Param''' | '''Example Param''' | ||
| Line 71: | Line 71: | ||
"if send any fields of versionedData will be hook properties then return all " | "if send any fields of versionedData will be hook properties then return all " | ||
}, | }, | ||
"Relationship": [], | |||
"originTimestamp": 1234567890, | "originTimestamp": 1234567890, | ||
"callingFlow": "string" | "callingFlow": "string" | ||
| Line 120: | Line 120: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== CreateNode with targetNode == | == CreateNode with targetNode == | ||
| Line 234: | Line 225: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== CreateNode with setFieldConditionals and deepPathConditional == | |||
* setFieldConditionals is check field in data before set field by conditional | |||
* deepPathConditional is check requiredOncreate node and Relationship exist , before created | |||
<source lang="json"> | |||
{ | |||
"objType":{ | |||
"serviceTag":"xxx", | |||
"objectType":"yyy" | |||
}, | |||
"objInstanceFull":{ | |||
"identifiers":{ | |||
}, | |||
"fields":{ | |||
} | |||
}, | |||
"setFieldConditionals":[ "// optional default array [ ]" | |||
{ | |||
"objType":{ | |||
}, | |||
"indexValue":{ | |||
}, | |||
"fieldName":"", "// fieldName want to set" | |||
"passValue":false, "//optional" | |||
"notPassValue":true, "// optional" | |||
"conditionals":[ | |||
{ | |||
"fieldName":"", "// field value for check" | |||
"value":"" | |||
} | |||
] | |||
}, | |||
{ | |||
// if have multiple check | |||
} | |||
], | |||
"relationships":[ | |||
{ | |||
"relType":{ }, | |||
"relationshipDirection":"", | |||
"targetObjType":{}, | |||
"targetIdentifiers":{ } | |||
} | |||
], | |||
"deepPathConditional":[ "// optional default array [ ]" | |||
{ | |||
{ | |||
"condition":"notExist","// if true can check || 'exist' equal is false" | |||
"conditionCheck":{ "// param it's seems like traversal of getDeepPathSearch" | |||
"nodeStructure":{ | |||
"objType":{ }, | |||
"fields":{ } | |||
}, | |||
"nextPath":{ | |||
"relationshipStructure":{ | |||
"relType":{ | |||
}, | |||
"relationshipDirection":"" | |||
}, | |||
"nodeStructure":{ | |||
}, | |||
"nextPath": {} "// if have multiple check" | |||
} | |||
} | |||
} | |||
], | |||
"settings":{ | |||
"updatePropertiesOnMatch":false | |||
}, | |||
"originTimestamp": Date.now() "// number" | |||
} | |||
</source> | |||
== 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 extendObjtype and targetNode == | |||
* create objectSchema that have objectType for create main node eg. objectType: objectA | |||
* createNode extend with relationship that have relationshipSchema : requiredOnCreate = true to targetNode | |||
== CreateNode With systemGenerated == | |||
* not send userNode or userId when createNode | |||
[[Category:Working documents| 2025-03-27]] | [[Category:Working documents| 2025-03-27]] | ||
Latest revision as of 08:30, 11 May 2026
Overview
Use 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 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"
}
CreateNode with setFieldConditionals and deepPathConditional
- setFieldConditionals is check field in data before set field by conditional
- deepPathConditional is check requiredOncreate node and Relationship exist , before created
{
"objType":{
"serviceTag":"xxx",
"objectType":"yyy"
},
"objInstanceFull":{
"identifiers":{
},
"fields":{
}
},
"setFieldConditionals":[ "// optional default array [ ]"
{
"objType":{
},
"indexValue":{
},
"fieldName":"", "// fieldName want to set"
"passValue":false, "//optional"
"notPassValue":true, "// optional"
"conditionals":[
{
"fieldName":"", "// field value for check"
"value":""
}
]
},
{
// if have multiple check
}
],
"relationships":[
{
"relType":{ },
"relationshipDirection":"",
"targetObjType":{},
"targetIdentifiers":{ }
}
],
"deepPathConditional":[ "// optional default array [ ]"
{
{
"condition":"notExist","// if true can check || 'exist' equal is false"
"conditionCheck":{ "// param it's seems like traversal of getDeepPathSearch"
"nodeStructure":{
"objType":{ },
"fields":{ }
},
"nextPath":{
"relationshipStructure":{
"relType":{
},
"relationshipDirection":""
},
"nodeStructure":{
},
"nextPath": {} "// if have multiple check"
}
}
}
],
"settings":{
"updatePropertiesOnMatch":false
},
"originTimestamp": Date.now() "// number"
}
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 extendObjtype and targetNode
- create objectSchema that have objectType for create main node eg. objectType: objectA
- createNode extend with relationship that have relationshipSchema : requiredOnCreate = true to targetNode
CreateNode With systemGenerated
- not send userNode or userId when createNode