From dc3a31a6957526ee3b57a5103a30f6583663b70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Fri, 2 Mar 2018 17:37:35 +0000 Subject: [PATCH] server: add cypher method to NodeWSServer --- .../src/main/resources/configuration.yml | 2 +- .../bionetdb/server/rest/NodeWSServer.java | 33 +++++++++++++++---- pom.xml | 2 +- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/bionetdb-core/src/main/resources/configuration.yml b/bionetdb-core/src/main/resources/configuration.yml index 47d5c9d..c775a0e 100644 --- a/bionetdb-core/src/main/resources/configuration.yml +++ b/bionetdb-core/src/main/resources/configuration.yml @@ -13,5 +13,5 @@ databases: host: "localhost" port: "7688" user: "neo4j" - password: "neo4j" + password: "neo4j;" options: null \ No newline at end of file diff --git a/bionetdb-server/src/main/java/org/opencb/bionetdb/server/rest/NodeWSServer.java b/bionetdb-server/src/main/java/org/opencb/bionetdb/server/rest/NodeWSServer.java index a6fe9a5..7871275 100644 --- a/bionetdb-server/src/main/java/org/opencb/bionetdb/server/rest/NodeWSServer.java +++ b/bionetdb-server/src/main/java/org/opencb/bionetdb/server/rest/NodeWSServer.java @@ -1,26 +1,27 @@ package org.opencb.bionetdb.server.rest; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.opencb.bionetdb.core.api.NetworkDBAdaptor; import org.opencb.bionetdb.core.neo4j.Neo4JNetworkDBAdaptor; +import org.opencb.bionetdb.core.network.Node; import org.opencb.bionetdb.server.exception.DatabaseException; import org.opencb.bionetdb.server.exception.VersionException; import org.opencb.commons.datastore.core.QueryResult; import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; +import java.util.List; /** * Created by imedina on 06/10/15. */ @Path("/{version}/node") @Produces("application/json") +@Api(value = "Node", position = 1, description = "Methods for working with 'nodes'") public class NodeWSServer extends GenericRestWSServer { public NodeWSServer(@PathParam("version") String version, @Context UriInfo uriInfo, @@ -29,9 +30,9 @@ public NodeWSServer(@PathParam("version") String version, @Context UriInfo uriIn } @GET - @Path("/{type}/cc") - @ApiOperation(httpMethod = "GET", value = "Get the object data model") - public Response getModel(@PathParam("type") String type) { + @Path("/{id}/info") + @ApiOperation(httpMethod = "GET", value = "Get Nodes by ID") + public Response getNodesById(@PathParam("id") String type) { try { NetworkDBAdaptor networkDBAdaptor = new Neo4JNetworkDBAdaptor(database, bioNetDBConfiguration); // Query query = new Query("id", physicalEntity); @@ -44,4 +45,22 @@ public Response getModel(@PathParam("type") String type) { } } + @GET + @Path("/cypher") + @ApiOperation(httpMethod = "GET", value = "Get Nodes by Cypher statement") + public Response getNodesByCypher(@QueryParam("cypher") String cypher) { + try { + NetworkDBAdaptor networkDBAdaptor = new Neo4JNetworkDBAdaptor(database, bioNetDBConfiguration); + List nodes = networkDBAdaptor.nodeQuery(cypher); + logger.info(cypher); + for (Node node: nodes) { + logger.info(node.toStringEx()); + } + QueryResult queryResult = new QueryResult<>(null, 0, nodes.size(), nodes.size(), null, null, nodes); + networkDBAdaptor.close(); + return createOkResponse(queryResult); + } catch (Exception e) { + return createErrorResponse(e); + } + } } diff --git a/pom.xml b/pom.xml index 79d3330..68ce25b 100644 --- a/pom.xml +++ b/pom.xml @@ -204,7 +204,7 @@ localhost 7687 neo4j - + neo4j;