Overview of supported commands
This page describes all command supported by the graph-cqrs module
Adding Elements
Deleting Elements
Setting Properties
Deleting Properties
General command structure
All Commands have three properties:
id
This property is a unique identifier for this particular command. It has to be a RFC4122 v4 compliant ID.
requestId
This property is a unique identifier for this particular request to the CQRS graph. In case only a single command is sent within the transaction, the requestId can be the same as the id.
sessionId
This property is a unique identifier for a particular (user) session. It is logged to improve debugging.
type
This string represents the type of the command, which is used when parsing the command.
Parsing commands
Javascript/Typescript developers can reuse the CommandFactory
class inside the cubitt-commands
package. This class provides a static method parse
which attempts to parse a command from a JSON object. It throws errors on failure.
Semantic validation
The
CommandFactory
only validates the syntax of the provided command, and does not check for duplicate elementId's or any other semantic errors.
var commands = require("cubitt-commands");
let jsonCommand = { /* jsonObject here */ };
try {
var result = commands.CommandFactory.parse(jsonCommand);
} catch(err) {
// Do something with the error
}
Add Commands
Add Model
A model can both be a top level element, or a child element
Top level Model
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the new model.
* @param elementType The type of the new model.
* @param elementProperties The properties of the new model.
* @param parentId The optional ID of the parent element
*/
var topLevelModelCommand = new commands.AddModelCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"EXAMPLE_MODEL",
{"key" : "value" }
);
{
"type" : "AddModelCommand",
"elementType": "EXAMPLE_MODEL",
"id" : "cee937c6-e890-423f-8f1b-1076d81c1894",
"requestId" : "076db581-a705-4cf3-9254-87fbdda6f7f8",
"sessionId" : "3cb87ad9-54ba-473a-bd09-247d42c1c95b",
"elementId" : "e24311f8-1f2c-4972-a313-8b871430af33",
"elementProperties" : {
"key" : "value"
}
}
Child level Model
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the new model.
* @param elementType The type of the new model.
* @param elementProperties The properties of the new model.
* @param parentId The optional ID of the parent element
*/
var childModelCommand = new commands.AddModelCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"EXAMPLE_MODEL",
{"key" : "value" },
common.Guid.newGuid(),
);
{
"id":"be27ff29-e258-4898-b4d1-f169d738b6a6",
"requestId":"04aa2fa5-98b9-4a8c-8655-e079baed5383",
"sessionId":"119d6c4f-4856-44dd-9032-295234a0c53d",
"type":"AddModelCommand",
"elementId":"847a3d48-acf2-4c95-91ad-b688134262df",
"elementType":"EXAMPLE_MODEL",
"elementProperties":{
"key":"value"
},
"ParentId":"330325be-848d-4ca9-9cb1-5b9053528e75"
}
Add Node
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the new node.
* @param elementType The type of the new node.
* @param elementProperties The properties of the new node.
* @param modelId The RFC4122 v4 compliant ID of the model to which the new node belongs.
*/
var addNodeCommand = new commands.AddNodeCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"EXAMPLE_NODE",
{"key" : "value" },
common.Guid.newGuid(),
);
{
"id":"d1929101-c53b-4c47-806e-98767a810263",
"requestId":"81f1baab-830a-4321-a9c1-4c548d6673ea",
"sessionId":"63d94b4d-87f7-43af-b862-f56bfdd500c9",
"type":"AddNodeCommand",
"elementId":"b28c749a-c6dd-42d2-86b6-722d4de8e537",
"elementType":"EXAMPLE_NODE",
"elementProperties":{
"key":"value"
},
"modelId":"cd51d469-04c4-4379-b5d2-64dd29224cbf"
}
Add Connector
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the new connector.
* @param elementType The type of the new connector.
* @param elementProperties The properties of the new connector.
* @param nodeId The RFC4122 v4 compliant ID of the node to which the new connector belongs.
*/
var addConnectorCommand = new commands.AddConnectorCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"EXAMPLE_NODE",
{"key" : "value" },
common.Guid.newGuid(),
);
{
"id":"b2e7608b-e3c0-4768-8e18-bcab07358f55",
"requestId":"201026a9-3c8f-41de-91a8-37c7cc757f51",
"sessionId":"b24a4912-349f-40d7-9677-4ac60a342482",
"type":"AddConnectorCommand",
"elementId":"324c1b35-1ba3-455c-8fcb-d9baefded311",
"elementType":"EXAMPLE_CONNECTOR",
"elementProperties":{
"key":"value"
},
"nodeId":"8d7dc805-15c2-422f-a2ac-414ff8852496"
}
Add Edge
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the new edge.
* @param elementType The type of the new edge.
* @param elementProperties The properties of the new edge.
* @param modelId The RFC4122 v4 compliant ID of the model to which the new edge belongs.
* @param startConnectorId The RFC4122 v4 compliant ID of the starting point of the new edge.
* @param endConnectorId The RFC4122 v4 compliant ID of the end point of the new edge.
*/
var addEdgeCommand = new commands.AddEdgeCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"TEST_EDGE",
{"key" : "value" },
common.Guid.newGuid(),
guid(),
guid()
);
{
"id":"fc768a6b-816d-4398-a1d3-306b4fffe552",
"requestId":"eaf2c397-ed5f-44bb-8255-f33c2dbfacc7",
"sessionId":"c7d6e5f8-8ea9-49f4-a05a-18f69bfc04cb",
"type":"AddEdgeCommand",
"elementId":"5eb17c2e-cc07-4c1f-98c7-0f6512f4efd2",
"elementType":"TEST_EDGE",
"elementProperties":{
"key":"value"
},
"modelId":"4d5c6565-df9a-464a-b3bc-6ee248d64e62",
"startConnectorId":"cbcd9422-d91c-47bc-83c0-c0464abd4c22",
"endConnectorId":"f0af422d-22da-4fe1-86b3-4a7bbb3edbf9"
}
Delete Commands
Delete Model
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the model that has to be deleted.
*/
var deleteModelCommand = new commands.DeleteModelCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
);
{
"id":"45e88260-fea5-45dd-855a-a268967aee6c",
"requestId":"5f9595ae-e438-4890-8449-99a22982ed40",
"sessionId":"fcb68a6f-1697-4d64-bc8c-d79ab6925108",
"type":"DeleteModelCommand",
"elementId":"2a5eafc2-d9a4-4c5b-be28-5d309f3c708f"
}
Delete Node
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the node that has to be deleted.
*/
var deleteNodeCommand = new commands.DeleteNodeCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
);
{
"id":"51f015bf-e6cd-4304-95b2-d4440ac71220",
"requestId":"0b1e9e69-6ec3-4c29-859e-092e3fa66c3f",
"sessionId":"eb08ff3a-9ac8-4391-9ae3-c6c11c05b8bf",
"type":"DeleteNodeCommand",
"elementId":"ccfbf32f-3bcc-4ec7-9bb4-78a9c9cfa40f"
}
Delete Connector
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the connector that has to be deleted.
*/
var deleteConnectorCommand = new commands.DeleteConnectorCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
);
{
"id":"ef55a062-ef17-4ba3-aa65-4647ef4cba16",
"requestId":"b9ba5ad8-367a-4673-ae96-0181af17cf24",
"sessionId":"e08d2239-6665-45fa-857d-6568a5109f2c",
"type":"DeleteConnectorCommand",
"elementId":"125cb3fe-2cef-489e-b193-7a4cbe74fbed"
}
Delete Edge
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the edge that has to be deleted.
*/
var deleteEdgeCommand = new commands.DeleteEdgeCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
);
{
"id":"16228459-eb5b-44d1-9c79-46d81c415ca4",
"requestId":"a63678c3-680d-40a9-8de7-c9685f6711ef",
"sessionId":"7900836e-c390-4f4b-9077-5bd2ba2e20b7",
"type":"DeleteEdgeCommand",
"elementId":"174f95a9-d288-4b74-8e66-d3105aa74982"
}
Set Property Commands
Set Model Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the model with the property that has to be set.
* @param propertyName The name of the property that has to be set.
* @param propertyValue The value of the property that has to be set.
*/
var setModelPropertyCommand = new commands.SetModelPropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname",
"value"
);
{
"id":"96df38f4-8764-439d-9594-64537d3e8916",
"requestId":"5f71a078-4610-408b-822d-d21b3f4943c0",
"sessionId":"b419950c-0e2e-4fe7-b1e9-5be459998828",
"type":"SetModelPropertyCommand",
"elementId":"889c5f10-0614-4992-94bb-f1131962fc42",
"propertyName":"propertyname",
"propertyValue":"value"
}
Set Node Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the node with the property that has to be set.
* @param propertyName The name of the property that has to be set.
* @param propertyValue The value of the property that has to be set.
*/
var setNodePropertyCommand = new commands.SetNodePropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname",
"value"
);
{
"id":"7d15ed0d-0369-47fd-8243-fa42fa4dcd56",
"requestId":"c5777f2a-dc5d-4698-99e7-071d97afbeb0",
"sessionId":"db9b1c3d-d09f-4b17-a4f5-39f2b0519648",
"type":"SetNodePropertyCommand",
"elementId":"c095471c-e605-486b-889c-578b693155ac",
"propertyName":"propertyname",
"propertyValue":"value"
}
Set Connector Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the connector with the property that has to be set.
* @param propertyName The name of the property that has to be set.
* @param propertyValue The value of the property that has to be set.
*/
var setConnectorPropertyCommand = new commands.SetConnectorPropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname",
"value"
);
{
"id":"46d6047d-36e7-4470-b760-a9451938504d",
"requestId":"ce7a0d95-ab83-40c4-9b39-a24b7f879ded",
"sessionId":"0cb5c997-588d-4d24-89d3-4b35860b99a3",
"type":"SetConnectorPropertyCommand",
"elementId":"6a8598d3-8204-42c9-9cdb-6b12c0531484",
"propertyName":"propertyname",
"propertyValue":"value"
}
Set Edge Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the edge with the property that has to be set.
* @param propertyName The name of the property that has to be set.
* @param propertyValue The value of the property that has to be set.
*/
var setEdgePropertyCommand = new commands.SetEdgePropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname",
"value"
);
{
"id": "0cb58198-7908-4aaa-989b-1d44d6ec10e3",
"requestId": "6a50d19e-0c05-4a3f-9493-58b5f16ae3e7",
"sessionId": "1a31dffd-de12-42b9-8480-4b953df90949",
"type": "SetEdgePropertyCommand",
"elementId": "f4dea282-b4d7-462b-a5cf-576ae0cbabd3",
"propertyName": "propertyname",
"propertyValue": "value"
}
Delete Element Property Commands
Delete Model Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the model with the property that has to be deleted.
* @param propertyName The name of the property that has to be deleted.
*/
var deleteModelPropertyCommand = new commands.DeleteModelPropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname"
);
Delete Node Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the node with the property that has to be deleted.
* @param propertyName The name of the property that has to be deleted.
*/
var deleteNodePropertyCommand = new commands.DeleteNodePropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname"
);
{
"id": "742166e0-4b21-4fe0-9958-d49dab7d58e4",
"requestId": "52d3e29c-0d36-4af9-b20a-8e5d1a9767c8",
"sessionId": "1c71c6fb-e0f6-4ff1-95fc-256c3595d076",
"type": "DeleteNodePropertyCommand",
"elementId": "9131f11b-b342-493d-8dfd-be10d6884e6e",
"propertyName": "propertyname"
}
Delete Connector Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the connector with the property that has to be deleted.
* @param propertyName The name of the property that has to be deleted.
*/
var deleteConnectorPropertyCommand = new commands.DeleteConnectorPropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname"
);
{
"id": "a41a8bde-d8bd-4ff7-97ea-8bdce624aa9f",
"requestId": "4e1ae4ff-50a7-478d-b519-bf6429822c85",
"sessionId": "673e3dfb-38af-4184-9969-2aa7b95a59b3",
"type": "DeleteConnectorPropertyCommand",
"elementId": "118046d3-8bb4-442c-8f32-fcc39ce70d47",
"propertyName": "propertyname"
}
Delete Edge Property
var common = require("cubitt-common");
var commands = require("cubitt-commands");
/**
* @param id The RFC4122 v4 compliant ID of this command.
* @param requestId The RFC4122 v4 compliant ID of the request that created this command.
* @param sessionId The RFC4122 v4 compliant ID of the session that created this command.
* @param elementId The RFC4122 v4 compliant ID of the edge with the property that has to be deleted.
* @param propertyName The name of the property that has to be deleted.
*/
var deleteEdgePropertyCommand = new commands.DeleteEdgePropertyCommand(
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
common.Guid.newGuid(),
"propertyname"
);
{
"id": "10143436-0d97-4748-bd4d-e4fe55167bb4",
"requestId": "cdfeec1c-489e-4c97-af79-e4eb6c3e2b7e",
"sessionId": "b9a4bcb9-7cc2-4110-bc7d-31409f66dabf",
"type": "DeleteEdgePropertyCommand",
"elementId": "a34f1540-f088-4d17-b4bf-04dbfffe3e25",
"propertyName": "propertyname"
}