Skip to content

Commit bb3f616

Browse files
Fix reversing vertexes with multiple edges
1 parent cb9a85f commit bb3f616

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

reverse_engineering/api.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,13 @@ module.exports = {
139139
bucketInfo,
140140
partitionKey,
141141
});
142+
let relationships =[];
142143
packages.labels.push(nodesData);
143144
const labelNames = nodesData.reduce((result, packageData) => result.concat([packageData.collectionName]), []);
144-
let relationships = await gremlinHelper.getRelationshipSchema(labelNames);
145-
relationships = relationships.filter(data => {
146-
return (labelNames.includes(data.start) && labelNames.includes(data.end));
147-
});
145+
const labelsRelationships = await gremlinHelper.getRelationshipSchema(labelNames);
146+
labelsRelationships.forEach(labelRelationships => labelRelationships
147+
.filter(relationship => labelNames.includes(relationship.start) && labelNames.includes(relationship.end))
148+
.forEach(relationship => relationships.push(relationship)));
148149
const relationshipData = await getRelationshipData(relationships, collectionName, recordSamplingSettings, fieldInference);
149150
packages.relationships.push(relationshipData);
150151
gremlinHelper.close();

reverse_engineering/gremlinHelper.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,15 @@ const getRelationshipSchema = (labels, limit = 100) => {
134134
return client.submit(`${graphName}.V().hasLabel('${label}').outE().limit(${limit}).as('edge').inV().as('end')
135135
.select('edge', 'end').by(label).dedup()`)
136136
.then(relationshipData => {
137-
const relationship = _.first(relationshipData.toArray());
138-
if (!relationship) {
139-
return {};
137+
const relationships = relationshipData.toArray();
138+
if (!relationships) {
139+
return [];
140140
}
141-
return {
142-
start: label,
141+
return relationships.map(relationship =>({
142+
start: label,
143143
relationship: relationship.edge,
144144
end: relationship.end
145-
}
145+
}))
146146
})
147147
}));
148148
};

0 commit comments

Comments
 (0)