NPM module - izara-shared: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 108: | Line 108: | ||
## objectVertexId: ''objectVertexId'' | ## objectVertexId: ''objectVertexId'' | ||
== graphSharedLib. | == graphSharedLib.createVersionedDataVertexTag == | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
/** | /** | ||
* Creates standardized versionedDataVertexLabel | * Creates standardized versionedDataVertexLabel | ||
* @param {string} | * @param {string} subjectVertexTag | ||
* @param {string} versionedDataTag | * @param {string} versionedDataTag | ||
* | * | ||
Line 120: | Line 120: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# let '' | # let ''versionedDataVertexTag'' = ''subjectVertexTag'' + ''versionedDataTag'' | ||
# return '' | # return ''versionedDataVertexTag'' | ||
== graphSharedLib.createVersionedDataEdgeLabel == | |||
<syntaxhighlight lang="JavaScript"> | |||
/** | |||
* Creates standardized versionedDataEdgeLabel | |||
* @param {string} ''versionedDataTag'' | |||
* | |||
* @returns {string} versionedDataEdgeLabel | |||
*/ | |||
</syntaxhighlight> | |||
# return [[NPM module - izara-shared#graphSharedLib]].hasEdgeLabelPrefix + ''versionedDataTag'' | |||
== graphSharedLib.getVerticesByVertexLabel == | == graphSharedLib.getVerticesByVertexLabel == | ||
Line 172: | Line 185: | ||
# return ''vertex'' | # return ''vertex'' | ||
== graphSharedLib. | == graphSharedLib.getVertexOutEdgesByVertexId == | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
Line 188: | Line 201: | ||
# .. | # .. | ||
== graphSharedLib. | == graphSharedLib.getVertexOutEdgesByVertexTagAndVertexUniqueId == | ||
<syntaxhighlight lang="JavaScript"> | |||
/** | |||
* Returns all edges, allowing label and property filters | |||
* @param {string} graphServiceName | |||
* @param {string} subjectVertexTag | |||
* @param {string} subjectVertexUniqueId | |||
* @param {string} [edgeLabel=""] | |||
* @param {object} [edgeProperties={}] | |||
* | |||
* @returns {string} vertexId | |||
*/ | |||
</syntaxhighlight> | |||
# const ''vertexId'' = [[NPM module - izara-shared#graphSharedLib.createVertexId]] | |||
## vertexTag: ''subjectVertexTag'' | |||
## vertexUniqueId: ''subjectVertexUniqueId'' | |||
# const ''edges'' = invoke [[#graphSharedLib.getVertexOutEdgesByVertexId]] | |||
## graphServiceName: ''graphServiceName'' | |||
## vertexId: ''vertexId'' | |||
## edgeLabel: ''edgeLabel'' | |||
## edgeProperties: ''edgeProperties'' | |||
# return ''edges'' | |||
== graphSharedLib.getVertexOutEdgesAndVerticesByVertexId == | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
Line 204: | Line 242: | ||
# .. | # .. | ||
== graphSharedLib.getVertexOutEdgesAndVerticesByVertexTagAndVertexUniqueId == | |||
<syntaxhighlight lang="JavaScript"> | |||
/** | |||
* Find related vertices and their connecting edges, including properties, allowing label and property filters | |||
* @param {string} graphServiceName | |||
* @param {string} subjectVertexTag | |||
* @param {string} subjectVertexUniqueId | |||
* @param {string} [edgeLabel=""] - edge label to filter edges by | |||
* @param {object} [edgeProperties={}] - edge properties to filter by, is an array of key > value pairs | |||
* @param {object} [vertexProperties={}] - object vertex properties to filter by, is an array of key > value pairs | |||
* | |||
* @returns {Object[]} array of vertices and the connecting edges | |||
*/ | |||
</syntaxhighlight> | |||
# const ''vertexId'' = [[NPM module - izara-shared#graphSharedLib.createVertexId]] | |||
## vertexTag: ''subjectVertexTag'' | |||
## vertexUniqueId: ''subjectVertexUniqueId'' | |||
# const ''vertexAndEdges'' = invoke [[#graphSharedLib.getVertexOutEdgesAndVerticesByVertexId]] | |||
## graphServiceName: ''graphServiceName'' | |||
## vertexId: ''vertexId'' | |||
## edgeLabel: ''edgeLabel'' | |||
## edgeProperties: ''edgeProperties'' | |||
# return ''vertexAndEdges'' | |||
== graphSharedLib.getObjectVertexByEdgeId == | == graphSharedLib.getObjectVertexByEdgeId == | ||
Line 232: | Line 296: | ||
# .. needs to filter edge by currently active versioned data.. | # .. needs to filter edge by currently active versioned data.. | ||
# ... work through queries to get the current versioned data | |||
# // will need versionedDataEdgeLabel to find edges that are versioned data | |||
#const versionedDataEdgeLabel = [[#createVersionedDataEdgeLabel]] | |||
## versionedDataTag: ''versionedDataTag'' | |||
== graphSharedLib. | == graphSharedLib.getCurrentVersionedDataByVertexTagAndVertexUniqueId == | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
Line 248: | Line 316: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# const '' | # const ''vertexId'' = [[NPM module - izara-shared#graphSharedLib.createVertexId]] | ||
## vertexTag: ''vertexTag'' | ## vertexTag: ''vertexTag'' | ||
## vertexUniqueId: ''vertexUniqueId'' | ## vertexUniqueId: ''vertexUniqueId'' | ||
#const ''versionedDataVertexTag = [[#graphSharedLib.getCurrentVersionedDataByVertexId]] | |||
#const '' | ## graphServiceName: ''graphServiceName'' | ||
## | ## vertexId: ''vertexId'' | ||
## versionedDataTag: ''versionedDataTag'' | ## versionedDataTag: ''versionedDataTag'' |
Revision as of 12:40, 6 March 2021
Overview
Shared libraries used across multiple izara projects
Repository
https://bitbucket.org/stb_working/izara-shared/src/master/
Helper functions for interacting with DynamoDB resources.
/**
* Creates a string set element for use with documentClient
* @param {string[]} stringSet
*
* @returns {string} String formatted as a string set for Dynamo
*/
Helper functions for Config tables.
/**
* @param {string} configTag
* @param {string} configKey
*
* @returns {Object} returns the configValue for a single config record, or null if none found
*/
Helper functions for interacting with Neptune graph databases from any service.
constants
- {string} userGraphTag ("user")
- {string} createdByEdgeLabel ("createdBy")
- {string} hasEdgeLabelPrefix ("has_")
- {string} settingsVersionedDataTag ("Settings")
/**
* Creates vertexId from vertexTag and unique id
* @param {string} vertexTag - is the type of object
* @param {string} vertexUniqueId
*
* @returns {string} vertexId
*/
- Concatenate vertexTag + "_" + vertexUniqueId
/**
* Creates standardized edgeId
* @param {string} subjectVertexId
* @param {string} edgeLabel
* @param {string} [objectVertexId=""]
*
* @returns {string} edgeId
*/
- let edgeid = subjectVertexId + '_' + edgeLabel
- if(objectVertexId)
- edgeid = edgeid + '_' + objectVertexId
- return edgeid
/**
* Creates standardized edgeId
* @param {string} subjectVertexTag
* @param {string} subjectVertexUniqueId
* @param {string} edgeLabel
* @param {string} [objectVertexTag=""]
* @param {string} [objectVertexUniqueId=""]
*
* @returns {string} edgeId
*/
- const subjectVertexId = graphSharedLib.createVertexId
- vertexTag = subjectVertexTag
- uniqueId = subjectVertexUniqueId
- let objectVertexId = ""
- if(objectVertexTag)
- objectVertexId = graphSharedLib.createVertexId
- vertexTag = objectVertexTag
- uniqueId = objectVertexUniqueId
- objectVertexId = graphSharedLib.createVertexId
- return = graphSharedLib.createEdgeIdFromVertexIds
- subjectVertexId: subjectVertexId'
- edgeLabel: edgeLabel
- objectVertexId: objectVertexId
/**
* Creates standardized versionedDataVertexLabel
* @param {string} subjectVertexTag
* @param {string} versionedDataTag
*
* @returns {string} versionedDataVertexLabel
*/
- let versionedDataVertexTag = subjectVertexTag + versionedDataTag
- return versionedDataVertexTag
/**
* Creates standardized versionedDataEdgeLabel
* @param {string} ''versionedDataTag''
*
* @returns {string} versionedDataEdgeLabel
*/
- return NPM module - izara-shared#graphSharedLib.hasEdgeLabelPrefix + versionedDataTag
/**
* Returns all vertices that match the vertex label for the given graph
* @param {string} graphServiceName
* @param {string} vertexLabel
*
* @returns {string} vertexId
*/
- ..
/**
* Returns vertex that matched the vertex id
* @param {string} graphServiceName
* @param {string} vertexId
*
* @returns {string} vertexId
*/
- ..
/**
* Returns vertex that matched the vertex id
* @param {string} graphServiceName
* @param {string} vertexTag
* @param {string} vertexUniqueId
*
* @returns {string} vertexId
*/
- const vertexId = NPM module - izara-shared#graphSharedLib.createVertexId
- vertexTag: vertexTag
- vertexUniqueId: vertexUniqueId
- const vertex = invoke #graphSharedLib.getVertexByVertexId
- graphServiceName: graphServiceName
- vertexId: vertexId
- return vertex
/**
* Returns all edges, allowing label and property filters
* @param {string} graphServiceName
* @param {string} subjectVertexId
* @param {string} [edgeLabel=""]
* @param {object} [edgeProperties={}]
*
* @returns {string} vertexId
*/
- ..
/**
* Returns all edges, allowing label and property filters
* @param {string} graphServiceName
* @param {string} subjectVertexTag
* @param {string} subjectVertexUniqueId
* @param {string} [edgeLabel=""]
* @param {object} [edgeProperties={}]
*
* @returns {string} vertexId
*/
- const vertexId = NPM module - izara-shared#graphSharedLib.createVertexId
- vertexTag: subjectVertexTag
- vertexUniqueId: subjectVertexUniqueId
- const edges = invoke #graphSharedLib.getVertexOutEdgesByVertexId
- graphServiceName: graphServiceName
- vertexId: vertexId
- edgeLabel: edgeLabel
- edgeProperties: edgeProperties
- return edges
/**
* Find related vertices and their connecting edges, including properties, allowing label and property filters
* @param {string} graphServiceName
* @param {string} subjectVertexId
* @param {string} [edgeLabel=""] - edge label to filter edges by
* @param {object} [edgeProperties={}] - edge properties to filter by, is an array of key > value pairs
* @param {object} [vertexProperties={}] - object vertex properties to filter by, is an array of key > value pairs
*
* @returns {Object[]} array of vertices and the connecting edges
*/
- ..
/**
* Find related vertices and their connecting edges, including properties, allowing label and property filters
* @param {string} graphServiceName
* @param {string} subjectVertexTag
* @param {string} subjectVertexUniqueId
* @param {string} [edgeLabel=""] - edge label to filter edges by
* @param {object} [edgeProperties={}] - edge properties to filter by, is an array of key > value pairs
* @param {object} [vertexProperties={}] - object vertex properties to filter by, is an array of key > value pairs
*
* @returns {Object[]} array of vertices and the connecting edges
*/
- const vertexId = NPM module - izara-shared#graphSharedLib.createVertexId
- vertexTag: subjectVertexTag
- vertexUniqueId: subjectVertexUniqueId
- const vertexAndEdges = invoke #graphSharedLib.getVertexOutEdgesAndVerticesByVertexId
- graphServiceName: graphServiceName
- vertexId: vertexId
- edgeLabel: edgeLabel
- edgeProperties: edgeProperties
- return vertexAndEdges
/**
* Find the object/target vertex for a specific edgeId
* @param {string} edgeId - edge label to filter edges by
*
* @returns {Object} vertex or null if not found
*/
- ..
/**
* Find the object/target vertex for a specific edgeId
* @param {string} graphServiceName
* @param {string} vertexId
* @param {string} versionedDataTag
*
* @returns {Object} vertex or null if not found
*/
- .. needs to filter edge by currently active versioned data..
- ... work through queries to get the current versioned data
- // will need versionedDataEdgeLabel to find edges that are versioned data
- const versionedDataEdgeLabel = #createVersionedDataEdgeLabel
- versionedDataTag: versionedDataTag
/**
* Returns vertex that matched the vertex id
* @param {string} graphServiceName
* @param {string} vertexTag
* @param {string} vertexUniqueId
* @param {string} versionedDataTag
*
* @returns {string} vertexId
*/
- const vertexId = NPM module - izara-shared#graphSharedLib.createVertexId
- vertexTag: vertexTag
- vertexUniqueId: vertexUniqueId
- const versionedDataVertexTag = #graphSharedLib.getCurrentVersionedDataByVertexId
- graphServiceName: graphServiceName
- vertexId: vertexId
- versionedDataTag: versionedDataTag