Skip to content

Commit 9c6599d

Browse files
committed
Merge pull request #102 from neo-technology/metadata-query
Refactor db.* procedure calls to be in one transaction
2 parents 33dd37d + 90f0c7d commit 9c6599d

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

app/scripts/services/Bolt.coffee

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,10 @@ angular.module('neo4jApp.services')
163163
.catch((err) -> q.resolve([]))
164164
q.promise
165165

166-
metaResultToRESTResult = (labels, realtionshipTypes, propertyKeys) ->
167-
labels: labels.map (o) -> o.get('label')
168-
relationships: realtionshipTypes.map (o) -> o.get('relationshipType')
169-
propertyKeys: propertyKeys.map (o) -> o.get('propertyKey')
166+
metaResultToRESTResult = (labels, relationshipTypes, propertyKeys) ->
167+
labels: labels.get(1)
168+
relationships: relationshipTypes.get(1)
169+
propertyKeys: propertyKeys.get(1)
170170

171171
versionResultToRESTResult = (r) ->
172172
return null unless r.records
@@ -392,8 +392,8 @@ angular.module('neo4jApp.services')
392392
callProcedure: callProcedure,
393393
constructResult: (res) ->
394394
boltResultToRESTResult res
395-
constructMetaResult: (labels, realtionshipTypes, propertyKeys) ->
396-
metaResultToRESTResult labels, realtionshipTypes, propertyKeys
395+
constructMetaResult: (labels, relationshipTypes, propertyKeys) ->
396+
metaResultToRESTResult labels, relationshipTypes, propertyKeys
397397
constructSchemaResult: (indexes, constraints) ->
398398
schemaResultToRESTResult indexes, constraints
399399
constructJmxResult: jmxResultToRESTResult

app/scripts/services/UtilityBolt.coffee

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,24 @@ angular.module('neo4jApp.services')
4141

4242
getMeta: ->
4343
q = $q.defer()
44-
$q.all([
45-
Bolt.callProcedure("db.labels"),
46-
Bolt.callProcedure("db.relationshipTypes"),
47-
Bolt.callProcedure("db.propertyKeys")
48-
]).then((data) ->
49-
q.resolve(Bolt.constructMetaResult data[0], data[1], data[2])
44+
Bolt.boltTransaction(
45+
"""CALL db.labels() YIELD label
46+
WITH COLLECT(label) AS labels
47+
RETURN 'labels' as a, labels as result
48+
UNION
49+
CALL db.relationshipTypes() YIELD relationshipType
50+
WITH COLLECT(relationshipType) AS relationshipTypes
51+
RETURN 'relationshipTypes'as a, relationshipTypes as result
52+
UNION
53+
CALL db.propertyKeys() YIELD propertyKey
54+
WITH COLLECT(propertyKey) AS propertyKeys
55+
RETURN 'propertyKeys' as a, propertyKeys as result"""
56+
).promise.then((result) ->
57+
return q.resolve(Bolt.constructMetaResult([], [], [])) unless result.records.length
58+
res = result.records[0]
59+
res2 = result.records[1]
60+
res3 = result.records[2]
61+
q.resolve(Bolt.constructMetaResult res, res2, res3)
5062
)
5163
q.promise
5264

0 commit comments

Comments
 (0)