1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.rest.web;
21
22 import java.net.URI;
23 import java.net.URISyntaxException;
24 import java.util.Map;
25
26 import org.neo4j.server.database.Database;
27 import org.neo4j.server.database.DatabaseBlockedException;
28 import org.neo4j.server.rest.domain.GraphDbHelper;
29
30 public class WebHelper {
31 private final URI baseUri;
32 private GraphDbHelper helper;
33
34 public WebHelper(URI baseUri, Database database) {
35 this.baseUri = baseUri;
36 this.helper = new GraphDbHelper(database);
37
38 }
39
40 public URI createNode() throws DatabaseBlockedException {
41 long nodeId = helper.createNode();
42 try {
43 return new URI(baseUri.toString() + "/" + nodeId);
44 } catch (URISyntaxException e) {
45 throw new RuntimeException(e);
46 }
47 }
48
49 public URI createNodeWithProperties(Map<String, Object> props) throws DatabaseBlockedException {
50 URI nodeUri = createNode();
51 setNodeProperties(nodeUri, props);
52 return nodeUri;
53 }
54
55 private void setNodeProperties(URI nodeUri, Map<String, Object> props) throws DatabaseBlockedException {
56 helper.setNodeProperties(extractNodeId(nodeUri), props);
57 }
58
59 private long extractNodeId(URI nodeUri) {
60 String path = nodeUri.getPath();
61 if (path.startsWith("/")) {
62 path = path.substring(1);
63 }
64
65 return Long.parseLong(path);
66 }
67 }