Skip to content
Snippets Groups Projects
Select Git revision
  • bc4a3ea668c91c1fbfc8b639179941c00cdf9d43
  • master default protected
2 results

graphCreator.js

  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    graphCreator.js 2.11 KiB
    import {Neo4JAdapter} from '../neo4j/neo'
    import {v1 as neo4j} from 'neo4j-driver'
    import {elements} from '../discussionElements'
    
    export class GraphCreator {
    
        async fill(graph, withQuery) {
            const queryResult = await new Neo4JAdapter('neo4j', 'W7uFSy$ywR3M3ck').ask(withQuery);
            var records = queryResult.records;
            records.forEach(function (record) {
                record.forEach(function (element) {
                    if (element instanceof neo4j.types.Node) {
                        var id = element.identity.toInt();
                        var newNode = null;
                        if (element.labels.includes(elements.ISSUE)) {
                            newNode = {
                                "id": id,
                                "labels": element.labels,
                                "title": element.properties.title
                            };
                        } else if (element.labels.includes(elements.STATEMENT)) {
                            newNode = {
                                "id": id,
                                "labels": element.labels,
                                "textversion": element.properties.textversion
                            };
                        } else if (element.labels.includes(elements.ARGUMENT)) {
                            newNode = {
                                "id": id,
                                "labels": element.labels
                            };
                        }
                        graph.addNode(newNode);
                    } else if (element instanceof Array) {
                        element.forEach(function (relation) {
                            if (relation instanceof neo4j.types.Relationship) {
                                var newEdge = {
                                    "id": relation.identity.toInt(),
                                    "source": relation.start.toInt(),
                                    "target": relation.end.toInt(),
                                    "type": relation.type
                                };
                                graph.addEdge(newEdge);
                            }
                        })
                    }
                });
            });
            return graph;
        }
    }