keymaker 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/keymaker.gemspec +5 -37
- data/lib/keymaker.rb +8 -5
- data/lib/keymaker/node.rb +69 -45
- data/lib/keymaker/parsers/cypher_response_parser.rb +25 -0
- data/lib/keymaker/serialization.rb +2 -1
- data/lib/keymaker/service.rb +4 -17
- data/spec/keymaker/node_spec.rb +92 -0
- data/spec/keymaker/requests/add_node_to_index_request_spec.rb +13 -13
- data/spec/keymaker/requests/batch_request_spec.rb +3 -56
- data/spec/keymaker/requests/create_node_request_spec.rb +15 -9
- data/spec/keymaker/requests/create_relationship_request_spec.rb +19 -11
- data/spec/keymaker/requests/execute_cypher_request_spec.rb +1 -1
- data/spec/keymaker/requests/get_relationship_types_request_spec.rb +3 -4
- data/spec/keymaker/requests/update_node_properties_request_spec.rb +1 -1
- data/spec/keymaker_spec.rb +38 -8
- data/spec/support/active_model_lint.rb +17 -0
- data/spec/support/keymaker.rb +1 -1
- metadata +8 -73
- data/spec/cassettes/Keymaker_AddNodeToIndexRequest/with_valid_options/returns_a_201_status_code.yml +0 -203
- data/spec/cassettes/Keymaker_AddNodeToIndexRequest/with_valid_options/returns_application/json.yml +0 -203
- data/spec/cassettes/Keymaker_AddNodeToIndexRequest/with_valid_options/returns_the_Neo4j_REST_API_starting_point_response_request.yml +0 -203
- data/spec/cassettes/Keymaker_BatchRequest/when_a_resource_is_not_found/raises_BatchRequestError.yml +0 -120
- data/spec/cassettes/Keymaker_BatchRequest/when_to_and_method_are_not_set/raises_BatchRequestError.yml +0 -106
- data/spec/cassettes/Keymaker_BatchRequest/with_valid_options/returns_a_200_status_code.yml +0 -129
- data/spec/cassettes/Keymaker_BatchRequest/with_valid_options/runs_the_commands_and_returns_their_respective_results.yml +0 -129
- data/spec/cassettes/Keymaker_CreateNodeRequest/returns_a_201_status_code.yml +0 -112
- data/spec/cassettes/Keymaker_CreateNodeRequest/returns_application/json.yml +0 -112
- data/spec/cassettes/Keymaker_CreateNodeRequest/with_properties/creates_a_node_with_the_given_properties.yml +0 -112
- data/spec/cassettes/Keymaker_CreateNodeRequest/without_properties/creates_an_empty_node.yml +0 -112
- data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_invalid_options/raises_ClientError.yml +0 -201
- data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_properties/creates_a_node_with_the_given_properties.yml +0 -233
- data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_properties/returns_a_201_status_code.yml +0 -196
- data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_properties/returns_application/json.yml +0 -196
- data/spec/cassettes/Keymaker_CreateRelationshipRequest/without_properties/creates_an_empty_relationship_of_type_birthed_.yml +0 -195
- data/spec/cassettes/Keymaker_DeleteRelationshipRequest/with_a_non-existent_relationship/raises_ResourceNotFound.yml +0 -191
- data/spec/cassettes/Keymaker_DeleteRelationshipRequest/with_an_existing_relationship/deletes_the_relationship.yml +0 -219
- data/spec/cassettes/Keymaker_ExecuteCypherRequest/with_a_valid_Cypher_Query/returns_a_200_status_code.yml +0 -111
- data/spec/cassettes/Keymaker_ExecuteCypherRequest/with_an_invalid_Cypher_Query/raises_ClientError.yml +0 -108
- data/spec/cassettes/Keymaker_ExecuteGremlinRequest/with_a_valid_Gremlin_Script/returns_a_200_status_code.yml +0 -98
- data/spec/cassettes/Keymaker_ExecuteGremlinRequest/with_an_invalid_Gremlin_Script/raises_ClientError.yml +0 -107
- data/spec/cassettes/Keymaker_GetNodeRequest/with_a_non-existent_node_id/raises_ResourceNotFound.yml +0 -101
- data/spec/cassettes/Keymaker_GetNodeRequest/with_an_empty_node_id/raises_ClientError.yml +0 -111
- data/spec/cassettes/Keymaker_GetRelationshipTypesRequest/with_existing_relationships/returns_a_unique_array_of_relationship_types.yml +0 -220
- data/spec/cassettes/Keymaker_ServiceRootRequest/returns_a_200_status_code.yml +0 -105
- data/spec/cassettes/Keymaker_ServiceRootRequest/returns_application/json.yml +0 -105
- data/spec/cassettes/Keymaker_ServiceRootRequest/returns_the_Neo4j_REST_API_starting_point_response_request.yml +0 -105
- data/spec/cassettes/Keymaker_TraversePathRequest/_traverse_path_properties/with_options/builds_the_query_properties_with_defaults.yml +0 -157
- data/spec/cassettes/Keymaker_TraversePathRequest/with_invalid_options/raise_a_ClientError.yml +0 -193
- data/spec/cassettes/Keymaker_TraversePathRequest/with_valid_options/returns_status_code_200.yml +0 -269
- data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/_node_properties/excludes_the_node_id.yml +0 -157
- data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/with_invalid_options/raises_a_ClientError.yml +0 -193
- data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/with_valid_options/returns_a_status_of_204.yml +0 -182
- data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/with_valid_options/updates_the_properties.yml +0 -214
@@ -1,214 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: post
|
5
|
-
uri: http://localhost:7477/db/data/ext/GremlinPlugin/graphdb/execute_script
|
6
|
-
body:
|
7
|
-
encoding: UTF-8
|
8
|
-
string: ! '{"script":"g.clear();g.V()"}'
|
9
|
-
headers:
|
10
|
-
Content-Type:
|
11
|
-
- application/json
|
12
|
-
response:
|
13
|
-
status:
|
14
|
-
code: 200
|
15
|
-
message: !!null
|
16
|
-
headers:
|
17
|
-
content-length:
|
18
|
-
- '3'
|
19
|
-
content-encoding:
|
20
|
-
- UTF-8
|
21
|
-
content-type:
|
22
|
-
- application/json
|
23
|
-
access-control-allow-origin:
|
24
|
-
- ! '*'
|
25
|
-
connection:
|
26
|
-
- close
|
27
|
-
server:
|
28
|
-
- Jetty(6.1.25)
|
29
|
-
body:
|
30
|
-
encoding: US-ASCII
|
31
|
-
string: ! '[ ]'
|
32
|
-
http_version: !!null
|
33
|
-
recorded_at: Fri, 27 Jul 2012 19:54:42 GMT
|
34
|
-
- request:
|
35
|
-
method: delete
|
36
|
-
uri: http://localhost:7477/db/data/index/node/users
|
37
|
-
body:
|
38
|
-
encoding: US-ASCII
|
39
|
-
string: ''
|
40
|
-
headers: {}
|
41
|
-
response:
|
42
|
-
status:
|
43
|
-
code: 404
|
44
|
-
message: !!null
|
45
|
-
headers:
|
46
|
-
content-length:
|
47
|
-
- '422'
|
48
|
-
content-encoding:
|
49
|
-
- UTF-8
|
50
|
-
content-type:
|
51
|
-
- application/json
|
52
|
-
access-control-allow-origin:
|
53
|
-
- ! '*'
|
54
|
-
connection:
|
55
|
-
- close
|
56
|
-
server:
|
57
|
-
- Jetty(6.1.25)
|
58
|
-
body:
|
59
|
-
encoding: US-ASCII
|
60
|
-
string: ! "{\n \"message\" : \"No node index named 'users'.\",\n \"exception\"
|
61
|
-
: \"NotFoundException\",\n \"stacktrace\" : [ \"org.neo4j.server.rest.web.DatabaseActions.removeNodeIndex(DatabaseActions.java:420)\",
|
62
|
-
\"org.neo4j.server.rest.web.RestfulGraphDatabase.deleteNodeIndex(RestfulGraphDatabase.java:729)\",
|
63
|
-
\"java.lang.reflect.Method.invoke(Method.java:597)\", \"org.neo4j.server.statistic.StatisticFilter.doFilter(StatisticFilter.java:62)\"
|
64
|
-
]\n}"
|
65
|
-
http_version: !!null
|
66
|
-
recorded_at: Fri, 27 Jul 2012 19:54:42 GMT
|
67
|
-
- request:
|
68
|
-
method: post
|
69
|
-
uri: http://localhost:7477/db/data/node
|
70
|
-
body:
|
71
|
-
encoding: UTF-8
|
72
|
-
string: ! '{"email":"john@resistance.net"}'
|
73
|
-
headers:
|
74
|
-
Content-Type:
|
75
|
-
- application/json
|
76
|
-
response:
|
77
|
-
status:
|
78
|
-
code: 201
|
79
|
-
message: !!null
|
80
|
-
headers:
|
81
|
-
content-length:
|
82
|
-
- '1138'
|
83
|
-
location:
|
84
|
-
- http://localhost:7477/db/data/node/829
|
85
|
-
content-encoding:
|
86
|
-
- UTF-8
|
87
|
-
content-type:
|
88
|
-
- application/json
|
89
|
-
access-control-allow-origin:
|
90
|
-
- ! '*'
|
91
|
-
connection:
|
92
|
-
- close
|
93
|
-
server:
|
94
|
-
- Jetty(6.1.25)
|
95
|
-
body:
|
96
|
-
encoding: US-ASCII
|
97
|
-
string: ! "{\n \"extensions\" : {\n },\n \"paged_traverse\" : \"http://localhost:7477/db/data/node/829/paged/traverse/{returnType}{?pageSize,leaseTime}\",\n
|
98
|
-
\ \"outgoing_relationships\" : \"http://localhost:7477/db/data/node/829/relationships/out\",\n
|
99
|
-
\ \"traverse\" : \"http://localhost:7477/db/data/node/829/traverse/{returnType}\",\n
|
100
|
-
\ \"all_typed_relationships\" : \"http://localhost:7477/db/data/node/829/relationships/all/{-list|&|types}\",\n
|
101
|
-
\ \"property\" : \"http://localhost:7477/db/data/node/829/properties/{key}\",\n
|
102
|
-
\ \"all_relationships\" : \"http://localhost:7477/db/data/node/829/relationships/all\",\n
|
103
|
-
\ \"self\" : \"http://localhost:7477/db/data/node/829\",\n \"properties\"
|
104
|
-
: \"http://localhost:7477/db/data/node/829/properties\",\n \"outgoing_typed_relationships\"
|
105
|
-
: \"http://localhost:7477/db/data/node/829/relationships/out/{-list|&|types}\",\n
|
106
|
-
\ \"incoming_relationships\" : \"http://localhost:7477/db/data/node/829/relationships/in\",\n
|
107
|
-
\ \"incoming_typed_relationships\" : \"http://localhost:7477/db/data/node/829/relationships/in/{-list|&|types}\",\n
|
108
|
-
\ \"create_relationship\" : \"http://localhost:7477/db/data/node/829/relationships\",\n
|
109
|
-
\ \"data\" : {\n \"email\" : \"john@resistance.net\"\n }\n}"
|
110
|
-
http_version: !!null
|
111
|
-
recorded_at: Fri, 27 Jul 2012 19:54:42 GMT
|
112
|
-
- request:
|
113
|
-
method: post
|
114
|
-
uri: http://localhost:7477/db/data/node
|
115
|
-
body:
|
116
|
-
encoding: UTF-8
|
117
|
-
string: ! '{"email":"sarah@resistance.net"}'
|
118
|
-
headers:
|
119
|
-
Content-Type:
|
120
|
-
- application/json
|
121
|
-
response:
|
122
|
-
status:
|
123
|
-
code: 201
|
124
|
-
message: !!null
|
125
|
-
headers:
|
126
|
-
content-length:
|
127
|
-
- '1139'
|
128
|
-
location:
|
129
|
-
- http://localhost:7477/db/data/node/830
|
130
|
-
content-encoding:
|
131
|
-
- UTF-8
|
132
|
-
content-type:
|
133
|
-
- application/json
|
134
|
-
access-control-allow-origin:
|
135
|
-
- ! '*'
|
136
|
-
connection:
|
137
|
-
- close
|
138
|
-
server:
|
139
|
-
- Jetty(6.1.25)
|
140
|
-
body:
|
141
|
-
encoding: US-ASCII
|
142
|
-
string: ! "{\n \"extensions\" : {\n },\n \"paged_traverse\" : \"http://localhost:7477/db/data/node/830/paged/traverse/{returnType}{?pageSize,leaseTime}\",\n
|
143
|
-
\ \"outgoing_relationships\" : \"http://localhost:7477/db/data/node/830/relationships/out\",\n
|
144
|
-
\ \"traverse\" : \"http://localhost:7477/db/data/node/830/traverse/{returnType}\",\n
|
145
|
-
\ \"all_typed_relationships\" : \"http://localhost:7477/db/data/node/830/relationships/all/{-list|&|types}\",\n
|
146
|
-
\ \"property\" : \"http://localhost:7477/db/data/node/830/properties/{key}\",\n
|
147
|
-
\ \"all_relationships\" : \"http://localhost:7477/db/data/node/830/relationships/all\",\n
|
148
|
-
\ \"self\" : \"http://localhost:7477/db/data/node/830\",\n \"properties\"
|
149
|
-
: \"http://localhost:7477/db/data/node/830/properties\",\n \"outgoing_typed_relationships\"
|
150
|
-
: \"http://localhost:7477/db/data/node/830/relationships/out/{-list|&|types}\",\n
|
151
|
-
\ \"incoming_relationships\" : \"http://localhost:7477/db/data/node/830/relationships/in\",\n
|
152
|
-
\ \"incoming_typed_relationships\" : \"http://localhost:7477/db/data/node/830/relationships/in/{-list|&|types}\",\n
|
153
|
-
\ \"create_relationship\" : \"http://localhost:7477/db/data/node/830/relationships\",\n
|
154
|
-
\ \"data\" : {\n \"email\" : \"sarah@resistance.net\"\n }\n}"
|
155
|
-
http_version: !!null
|
156
|
-
recorded_at: Fri, 27 Jul 2012 19:54:42 GMT
|
157
|
-
- request:
|
158
|
-
method: put
|
159
|
-
uri: http://localhost:7477/db/data/node/829/properties
|
160
|
-
body:
|
161
|
-
encoding: UTF-8
|
162
|
-
string: ! '{"email":"john.connor@resistance.net"}'
|
163
|
-
headers:
|
164
|
-
Content-Type:
|
165
|
-
- application/json
|
166
|
-
response:
|
167
|
-
status:
|
168
|
-
code: 204
|
169
|
-
message: !!null
|
170
|
-
headers:
|
171
|
-
access-control-allow-origin:
|
172
|
-
- ! '*'
|
173
|
-
connection:
|
174
|
-
- close
|
175
|
-
server:
|
176
|
-
- Jetty(6.1.25)
|
177
|
-
body:
|
178
|
-
encoding: US-ASCII
|
179
|
-
string: ''
|
180
|
-
http_version: !!null
|
181
|
-
recorded_at: Fri, 27 Jul 2012 19:54:42 GMT
|
182
|
-
- request:
|
183
|
-
method: post
|
184
|
-
uri: http://localhost:7477/db/data/cypher
|
185
|
-
body:
|
186
|
-
encoding: UTF-8
|
187
|
-
string: ! '{"query":"START n=node({node_id}) RETURN n.email;","params":{"node_id":829}}'
|
188
|
-
headers:
|
189
|
-
Content-Type:
|
190
|
-
- application/json
|
191
|
-
response:
|
192
|
-
status:
|
193
|
-
code: 200
|
194
|
-
message: !!null
|
195
|
-
headers:
|
196
|
-
content-length:
|
197
|
-
- '80'
|
198
|
-
content-encoding:
|
199
|
-
- UTF-8
|
200
|
-
content-type:
|
201
|
-
- application/json
|
202
|
-
access-control-allow-origin:
|
203
|
-
- ! '*'
|
204
|
-
connection:
|
205
|
-
- close
|
206
|
-
server:
|
207
|
-
- Jetty(6.1.25)
|
208
|
-
body:
|
209
|
-
encoding: US-ASCII
|
210
|
-
string: ! "{\n \"columns\" : [ \"n.email\" ],\n \"data\" : [ [ \"john.connor@resistance.net\"
|
211
|
-
] ]\n}"
|
212
|
-
http_version: !!null
|
213
|
-
recorded_at: Fri, 27 Jul 2012 19:54:42 GMT
|
214
|
-
recorded_with: VCR 2.2.2
|