diff --git a/forward_engineering/helpers/common.js b/forward_engineering/helpers/common.js index ea955b9..d74a2c3 100644 --- a/forward_engineering/helpers/common.js +++ b/forward_engineering/helpers/common.js @@ -55,12 +55,15 @@ const getItemPropertyKeys = (itemName, properties = []) => const getPropertyKeyGetScript = propertyName => `${propertyName} = mgmt.getPropertyKey('${propertyName}')`; +const getEdgeName = relationship => relationship.code || relationship.name; + module.exports = { transformToValidGremlinName, setInManagement, getTTlScript, getItemPropertyKeys, getPropertyKeyGetScript, + getEdgeName, DEFAULT_INDENT, NEW_LINE_DOUBLE_INDENT, }; diff --git a/forward_engineering/helpers/edgeLabelHelper.js b/forward_engineering/helpers/edgeLabelHelper.js index ea28195..e30c8f5 100644 --- a/forward_engineering/helpers/edgeLabelHelper.js +++ b/forward_engineering/helpers/edgeLabelHelper.js @@ -1,14 +1,14 @@ -const { transformToValidGremlinName, getTTlScript, getItemPropertyKeys } = require('./common'); +const { transformToValidGremlinName, getTTlScript, getItemPropertyKeys, getEdgeName } = require('./common'); const _ = require('lodash'); const generateEdges = ({ relationships, vertices }) => { - return _.uniqBy(relationships, relationship => relationship.name) + return _.uniqBy(relationships, relationship => getEdgeName(relationship)) .map(getEdgeLabelScript(vertices)) .join('\n\n'); }; const getEdgeLabelScript = vertices => relationship => { - const name = transformToValidGremlinName(relationship.name); + const name = transformToValidGremlinName(getEdgeName(relationship)); const multiplicity = _.get(relationship, 'customProperties.multiplicity', 'MULTI'); const unidirectedScript = getUnidirectedScript(relationship); diff --git a/forward_engineering/helpers/sampleDataHelper.js b/forward_engineering/helpers/sampleDataHelper.js index 44287cd..ead97de 100644 --- a/forward_engineering/helpers/sampleDataHelper.js +++ b/forward_engineering/helpers/sampleDataHelper.js @@ -1,4 +1,4 @@ -const { transformToValidGremlinName, DEFAULT_INDENT } = require('./common'); +const { transformToValidGremlinName, DEFAULT_INDENT, getEdgeName } = require('./common'); const { getGeoshapeSample } = require('./geoshapeHelper'); const _ = require('lodash'); @@ -59,7 +59,7 @@ const generateVertices = (collections, jsonData, graphName) => { }; const generateEdge = (from, to, relationship, edgeData, graphName) => { - const edgeName = transformToValidGremlinName(relationship.name); + const edgeName = transformToValidGremlinName(getEdgeName(relationship)); const propertiesScript = addPropertiesScript(relationship, edgeData, edgeName); return `${edgeName} = ${from}.\n${DEFAULT_INDENT}addEdge(${JSON.stringify(edgeName)}, ${to});${propertiesScript}`;