Skip to content

Commit 79867e9

Browse files
committed
record types support
1 parent 147cd7b commit 79867e9

File tree

1 file changed

+46
-2
lines changed

1 file changed

+46
-2
lines changed

neo4j.js

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,59 @@ module.exports = function (RED) {
3131
var array_result = {
3232
payload: []
3333
}
34+
35+
function processInteger (integer) {
36+
if (integer.constructor.name === 'Integer') {
37+
return integer.toNumber()
38+
}
39+
return integer
40+
}
41+
42+
function processRecord (record) {
43+
if (record.constructor.name === 'Integer') {
44+
return record.toNumber()
45+
}
46+
47+
if (record.constructor.name === 'Path') {
48+
record.start.identity = processInteger(record.start.identity)
49+
record.end.identity = processInteger(record.end.identity)
50+
record.segments = record.segments.map(segment => {
51+
52+
segment.start.identity = processInteger(segment.start.identity)
53+
segment.end.identity = processInteger(segment.end.identity)
54+
55+
segment.relationship.identity = processInteger(segment.relationship.identity)
56+
segment.relationship.start = processInteger(segment.relationship.start)
57+
segment.relationship.end = processInteger(segment.relationship.end)
58+
59+
return segment
60+
})
61+
return record
62+
}
63+
64+
if (record.constructor.name === 'Relationship') {
65+
record.identity = processInteger(record.identity)
66+
record.start = processInteger(record.start)
67+
record.end = processInteger(record.end)
68+
return record
69+
}
70+
71+
if (record.constructor.name === 'Node') {
72+
record.identity = processInteger(record.identity)
73+
return record
74+
}
75+
76+
return record
77+
}
3478
resultPromise.then(result => {
3579
session.close()
3680
if (result.records.length > 1) {
3781
result.records.forEach(function (item, index, array) {
38-
array_result.payload.push(item.get(0).properties)
82+
array_result.payload.push(processRecord(item.get(0)))
3983
})
4084
node.send([null, array_result])
4185
} else {
42-
scalar_result.payload = result.records[0].get(0).properties
86+
scalar_result.payload = processRecord(result.records[0].get(0))
4387
node.send([scalar_result, null])
4488
}
4589
})

0 commit comments

Comments
 (0)