@@ -44,13 +44,12 @@ public void getClassesForUser(String userId, Handler<Either<String, JsonArray>>
44
44
45
45
public void getStructuresHierarchyAndClasses (String userId , Handler <Either <String , JsonArray >> handler ) {
46
46
final String query =
47
- "MATCH (u :User {id: {userId}})-[:IN]->(pg)-[:DEPENDS]->(s:Structure)" +
47
+ "MATCH (:User {id: {userId}})-[:IN]->(pg)-[:DEPENDS]->(s:Structure)" +
48
48
" WHERE (pg:ProfileGroup OR pg:FunctionGroup) " +
49
- " OPTIONAL MATCH (s)-[:HAS_ATTACHMENT]->(ps:Structure)<-[:DEPENDS]-(g)<-[:IN]-(u )" +
49
+ " OPTIONAL MATCH (s)-[:HAS_ATTACHMENT]->(ps:Structure)<-[:DEPENDS]-(g)<-[:IN]-(:User {id: {userId}} )" +
50
50
" WHERE (g:ProfileGroup OR g:FunctionGroup) " +
51
- " WITH u, s, COLLECT(distinct {id: ps.id, name: ps.name}) as parents" +
52
- " OPTIONAL MATCH (u)-[:IN]->(pg:ProfileGroup)-[:DEPENDS]->(c:Class)-[:BELONGS]->(s)" +
53
- " WITH u, s, parents, COLLECT(distinct {id: c.id, name: c.name}) as classes" +
51
+ " OPTIONAL MATCH (:User {id: {userId}})-[:IN]->(pg:ProfileGroup)-[:DEPENDS]->(c:Class)-[:BELONGS]->(s)" +
52
+ " WITH s, COLLECT(distinct {id: ps.id, name: ps.name}) as parents, COLLECT(distinct {id: c.id, name: c.name}) as classes" +
54
53
" WITH DISTINCT s, CASE WHEN any(p in parents where p <> {id: null, name: null}) THEN parents END as parents," +
55
54
" CASE WHEN any(c in classes where c <> {id: null, name: null}) THEN classes END as classes " +
56
55
" RETURN DISTINCT s.id as id, s.name as name, parents, classes, length(coalesce(parents,[])) > 0 as notroot " +
0 commit comments