arangodb-driver 3.10.4 → 3.10.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +9 -11
  4. data/lib/arango/aql.rb +75 -9
  5. data/lib/arango/cursor.rb +6 -1
  6. data/lib/arango/database/analyzer.rb +3 -0
  7. data/lib/arango/database/aql_functions.rb +2 -0
  8. data/lib/arango/database/aql_queries.rb +2 -0
  9. data/lib/arango/database/aql_query_cache.rb +2 -0
  10. data/lib/arango/database/collections.rb +2 -0
  11. data/lib/arango/database/document_collections.rb +4 -2
  12. data/lib/arango/database/edge_collections.rb +2 -0
  13. data/lib/arango/database/foxx_services.rb +3 -0
  14. data/lib/arango/database/graphs.rb +2 -0
  15. data/lib/arango/database/http_route.rb +4 -1
  16. data/lib/arango/database/replication.rb +3 -1
  17. data/lib/arango/database/stream_transactions.rb +3 -0
  18. data/lib/arango/database/system_collections.rb +2 -0
  19. data/lib/arango/database/tasks.rb +2 -0
  20. data/lib/arango/database/transactions.rb +4 -1
  21. data/lib/arango/database/user.rb +2 -0
  22. data/lib/arango/database/view_access.rb +2 -0
  23. data/lib/arango/database.rb +4 -2
  24. data/lib/arango/document/base.rb +2 -0
  25. data/lib/arango/document/class_methods.rb +2 -0
  26. data/lib/arango/document/instance_methods.rb +2 -0
  27. data/lib/arango/document/mixin.rb +2 -0
  28. data/lib/arango/document.rb +3 -0
  29. data/lib/arango/document_collection/base.rb +2 -0
  30. data/lib/arango/document_collection/class_methods.rb +2 -0
  31. data/lib/arango/document_collection/documents.rb +2 -0
  32. data/lib/arango/document_collection/importing.rb +2 -0
  33. data/lib/arango/document_collection/indexes.rb +2 -0
  34. data/lib/arango/document_collection/instance_methods.rb +2 -0
  35. data/lib/arango/document_collection/mixin.rb +2 -0
  36. data/lib/arango/document_collection/replication.rb +2 -0
  37. data/lib/arango/document_collection/user.rb +2 -0
  38. data/lib/arango/driver/typhoeus.rb +2 -0
  39. data/lib/arango/edge/base.rb +2 -0
  40. data/lib/arango/edge/class_methods.rb +2 -0
  41. data/lib/arango/edge/instance_methods.rb +2 -0
  42. data/lib/arango/edge/mixin.rb +2 -0
  43. data/lib/arango/edge_collection/base.rb +2 -0
  44. data/lib/arango/edge_collection/class_methods.rb +2 -0
  45. data/lib/arango/edge_collection/edge_acces_2.rb +20 -20
  46. data/lib/arango/edge_collection/edges.rb +2 -0
  47. data/lib/arango/edge_collection/instance_methods.rb +2 -0
  48. data/lib/arango/edge_collection/mixin.rb +2 -0
  49. data/lib/arango/error.rb +5 -1
  50. data/lib/arango/error_db.rb +9 -0
  51. data/lib/arango/foxx.rb +3 -2
  52. data/lib/arango/graph/base.rb +2 -0
  53. data/lib/arango/graph/class_methods.rb +5 -2
  54. data/lib/arango/graph/definition.rb +2 -0
  55. data/lib/arango/graph/instance_methods.rb +7 -3
  56. data/lib/arango/graph/mixin.rb +2 -0
  57. data/lib/arango/helper/database_assignment.rb +2 -0
  58. data/lib/arango/helper/satisfaction.rb +2 -0
  59. data/lib/arango/helper/server_assignment.rb +2 -0
  60. data/lib/arango/index.rb +20 -3
  61. data/lib/arango/replication.rb +3 -2
  62. data/lib/arango/request.rb +67 -0
  63. data/lib/arango/requests/administration/availability.rb +3 -0
  64. data/lib/arango/requests/administration/cluster_endpoints.rb +3 -0
  65. data/lib/arango/requests/administration/create_task.rb +3 -0
  66. data/lib/arango/requests/administration/create_task_id.rb +3 -0
  67. data/lib/arango/requests/administration/delete_task.rb +3 -0
  68. data/lib/arango/requests/administration/echo.rb +3 -0
  69. data/lib/arango/requests/administration/endpoints.rb +3 -0
  70. data/lib/arango/requests/administration/engine.rb +3 -0
  71. data/lib/arango/requests/administration/execute.rb +3 -0
  72. data/lib/arango/requests/administration/get_log_level.rb +3 -0
  73. data/lib/arango/requests/administration/get_mode.rb +3 -0
  74. data/lib/arango/requests/administration/get_task.rb +3 -0
  75. data/lib/arango/requests/administration/list_tasks.rb +2 -0
  76. data/lib/arango/requests/administration/log.rb +2 -0
  77. data/lib/arango/requests/administration/metrics.rb +2 -0
  78. data/lib/arango/requests/administration/reload_routing.rb +2 -0
  79. data/lib/arango/requests/administration/role.rb +2 -0
  80. data/lib/arango/requests/administration/server_id.rb +2 -0
  81. data/lib/arango/requests/administration/set_log_level.rb +2 -0
  82. data/lib/arango/requests/administration/set_mode.rb +2 -0
  83. data/lib/arango/requests/administration/statistics.rb +2 -0
  84. data/lib/arango/requests/administration/statistics_description.rb +2 -0
  85. data/lib/arango/requests/administration/status.rb +2 -0
  86. data/lib/arango/requests/administration/target_version.rb +2 -0
  87. data/lib/arango/requests/administration/time.rb +2 -0
  88. data/lib/arango/requests/administration/version.rb +2 -0
  89. data/lib/arango/requests/analyzer/create.rb +3 -0
  90. data/lib/arango/requests/analyzer/delete.rb +3 -0
  91. data/lib/arango/requests/analyzer/get.rb +3 -0
  92. data/lib/arango/requests/analyzer/list.rb +3 -0
  93. data/lib/arango/requests/aql/clear_query_result_cache.rb +3 -0
  94. data/lib/arango/requests/aql/create_function.rb +3 -0
  95. data/lib/arango/requests/aql/current_queries.rb +3 -0
  96. data/lib/arango/requests/aql/delete_function.rb +4 -0
  97. data/lib/arango/requests/aql/delete_slow_query_list.rb +3 -0
  98. data/lib/arango/requests/aql/explain.rb +3 -0
  99. data/lib/arango/requests/aql/get_query_result_cache_properties.rb +3 -0
  100. data/lib/arango/requests/aql/get_query_tracking_properties.rb +3 -0
  101. data/lib/arango/requests/aql/get_slow_query_list.rb +3 -0
  102. data/lib/arango/requests/aql/kill_query.rb +4 -0
  103. data/lib/arango/requests/aql/list_functions.rb +2 -0
  104. data/lib/arango/requests/aql/parse.rb +2 -0
  105. data/lib/arango/requests/aql/query_result_cache_entries.rb +2 -0
  106. data/lib/arango/requests/aql/set_query_result_cache_properties.rb +2 -0
  107. data/lib/arango/requests/aql/set_query_tracking_properties.rb +2 -0
  108. data/lib/arango/requests/backup/create.rb +3 -0
  109. data/lib/arango/requests/backup/delete.rb +3 -0
  110. data/lib/arango/requests/backup/download.rb +3 -0
  111. data/lib/arango/requests/backup/list.rb +3 -0
  112. data/lib/arango/requests/backup/restore.rb +2 -0
  113. data/lib/arango/requests/backup/upload.rb +2 -0
  114. data/lib/arango/requests/bulk/execute.rb +3 -0
  115. data/lib/arango/requests/bulk/export.rb +3 -0
  116. data/lib/arango/requests/bulk/import_document.rb +3 -0
  117. data/lib/arango/requests/bulk/import_json.rb +3 -0
  118. data/lib/arango/requests/cluster/health.rb +3 -0
  119. data/lib/arango/requests/cluster/maintenance.rb +2 -0
  120. data/lib/arango/requests/cluster/statistics.rb +3 -1
  121. data/lib/arango/requests/collection/checksum.rb +3 -0
  122. data/lib/arango/requests/collection/count.rb +3 -0
  123. data/lib/arango/requests/collection/create.rb +3 -0
  124. data/lib/arango/requests/collection/delete.rb +3 -0
  125. data/lib/arango/requests/collection/get.rb +3 -0
  126. data/lib/arango/requests/collection/get_properties.rb +3 -0
  127. data/lib/arango/requests/collection/list_all.rb +3 -0
  128. data/lib/arango/requests/collection/load.rb +2 -0
  129. data/lib/arango/requests/collection/load_indexes_into_memory.rb +2 -0
  130. data/lib/arango/requests/collection/recalculate_count.rb +2 -0
  131. data/lib/arango/requests/collection/rename.rb +2 -0
  132. data/lib/arango/requests/collection/responsible_shard.rb +2 -0
  133. data/lib/arango/requests/collection/revision.rb +2 -0
  134. data/lib/arango/requests/collection/rotate_journal.rb +2 -0
  135. data/lib/arango/requests/collection/set_properties.rb +2 -0
  136. data/lib/arango/requests/collection/shards.rb +2 -0
  137. data/lib/arango/requests/collection/statistics.rb +2 -0
  138. data/lib/arango/requests/collection/truncate.rb +2 -0
  139. data/lib/arango/requests/collection/unload.rb +3 -1
  140. data/lib/arango/requests/cursor/create.rb +3 -0
  141. data/lib/arango/requests/cursor/delete.rb +3 -0
  142. data/lib/arango/requests/cursor/next_batch.rb +2 -0
  143. data/lib/arango/requests/database/create.rb +3 -0
  144. data/lib/arango/requests/database/delete.rb +3 -0
  145. data/lib/arango/requests/database/get_information.rb +3 -0
  146. data/lib/arango/requests/database/list_accessible.rb +3 -0
  147. data/lib/arango/requests/database/list_all.rb +3 -0
  148. data/lib/arango/requests/document/create.rb +3 -0
  149. data/lib/arango/requests/document/create_multiple.rb +3 -0
  150. data/lib/arango/requests/document/delete.rb +3 -0
  151. data/lib/arango/requests/document/delete_multiple.rb +3 -0
  152. data/lib/arango/requests/document/get.rb +3 -0
  153. data/lib/arango/requests/document/get_multiple.rb +3 -0
  154. data/lib/arango/requests/document/head.rb +3 -0
  155. data/lib/arango/requests/document/replace.rb +2 -0
  156. data/lib/arango/requests/document/replace_multiple.rb +2 -0
  157. data/lib/arango/requests/document/update.rb +2 -0
  158. data/lib/arango/requests/document/update_multiple.rb +2 -0
  159. data/lib/arango/requests/foxx/commit.rb +3 -0
  160. data/lib/arango/requests/foxx/description.rb +3 -0
  161. data/lib/arango/requests/foxx/disable_development_mode.rb +3 -0
  162. data/lib/arango/requests/foxx/download_bundle.rb +3 -0
  163. data/lib/arango/requests/foxx/enable_development_mode.rb +3 -0
  164. data/lib/arango/requests/foxx/get_configuration.rb +3 -0
  165. data/lib/arango/requests/foxx/get_dependencies.rb +3 -0
  166. data/lib/arango/requests/foxx/install.rb +3 -0
  167. data/lib/arango/requests/foxx/list_all.rb +3 -0
  168. data/lib/arango/requests/foxx/list_scripts.rb +2 -0
  169. data/lib/arango/requests/foxx/readme.rb +2 -0
  170. data/lib/arango/requests/foxx/replace.rb +2 -0
  171. data/lib/arango/requests/foxx/replace_configuration.rb +2 -0
  172. data/lib/arango/requests/foxx/replace_dependencies.rb +2 -0
  173. data/lib/arango/requests/foxx/run_script.rb +2 -0
  174. data/lib/arango/requests/foxx/run_tests.rb +2 -0
  175. data/lib/arango/requests/foxx/swagger.rb +2 -0
  176. data/lib/arango/requests/foxx/uninstall.rb +2 -0
  177. data/lib/arango/requests/foxx/update_configuration.rb +2 -0
  178. data/lib/arango/requests/foxx/update_dependencies.rb +2 -0
  179. data/lib/arango/requests/foxx/upgrade.rb +3 -1
  180. data/lib/arango/requests/graph/add_edge_definition.rb +2 -0
  181. data/lib/arango/requests/graph/add_vertex_collection.rb +2 -0
  182. data/lib/arango/requests/graph/create.rb +3 -0
  183. data/lib/arango/requests/graph/create_edge.rb +3 -0
  184. data/lib/arango/requests/graph/create_vertex.rb +3 -0
  185. data/lib/arango/requests/graph/delete.rb +3 -0
  186. data/lib/arango/requests/graph/delete_edge.rb +3 -0
  187. data/lib/arango/requests/graph/delete_vertex.rb +3 -0
  188. data/lib/arango/requests/graph/get.rb +3 -0
  189. data/lib/arango/requests/graph/get_edge.rb +3 -0
  190. data/lib/arango/requests/graph/get_vertex.rb +3 -0
  191. data/lib/arango/requests/graph/list_all.rb +3 -0
  192. data/lib/arango/requests/graph/list_edge_definitions.rb +2 -0
  193. data/lib/arango/requests/graph/list_vertex_collections.rb +2 -0
  194. data/lib/arango/requests/graph/remove_edge_definition.rb +2 -0
  195. data/lib/arango/requests/graph/remove_vertex_collection.rb +2 -0
  196. data/lib/arango/requests/graph/replace_edge.rb +2 -0
  197. data/lib/arango/requests/graph/replace_edge_definition.rb +2 -0
  198. data/lib/arango/requests/graph/replace_vertex.rb +2 -0
  199. data/lib/arango/requests/graph/update_edge.rb +2 -0
  200. data/lib/arango/requests/graph/update_vertex.rb +2 -0
  201. data/lib/arango/requests/graph_edges/read.rb +2 -0
  202. data/lib/arango/requests/graph_traversal/execute.rb +3 -0
  203. data/lib/arango/requests/index/create.rb +3 -0
  204. data/lib/arango/requests/index/delete.rb +3 -0
  205. data/lib/arango/requests/index/get.rb +3 -0
  206. data/lib/arango/requests/index/list_all.rb +3 -0
  207. data/lib/arango/requests/job/cancel.rb +3 -0
  208. data/lib/arango/requests/job/delete.rb +3 -0
  209. data/lib/arango/requests/job/get.rb +3 -0
  210. data/lib/arango/requests/job/list.rb +3 -0
  211. data/lib/arango/requests/job/result.rb +2 -0
  212. data/lib/arango/requests/replication/create_dump_batch.rb +3 -0
  213. data/lib/arango/requests/replication/delete_dump_batch.rb +3 -0
  214. data/lib/arango/requests/replication/get_applier_config.rb +3 -0
  215. data/lib/arango/requests/replication/get_applier_state.rb +3 -0
  216. data/lib/arango/requests/replication/get_cluster_inventory.rb +3 -0
  217. data/lib/arango/requests/replication/get_dump.rb +3 -0
  218. data/lib/arango/requests/replication/get_inventory.rb +3 -0
  219. data/lib/arango/requests/replication/get_last_tick.rb +3 -0
  220. data/lib/arango/requests/replication/get_log_first_tick.rb +3 -0
  221. data/lib/arango/requests/replication/get_log_follow.rb +3 -0
  222. data/lib/arango/requests/replication/get_logger_state.rb +3 -0
  223. data/lib/arango/requests/replication/get_logger_tick_ranges.rb +3 -0
  224. data/lib/arango/requests/replication/get_server_id.rb +3 -0
  225. data/lib/arango/requests/replication/get_tail.rb +3 -0
  226. data/lib/arango/requests/replication/get_tick_ranges.rb +3 -0
  227. data/lib/arango/requests/replication/make_slave.rb +2 -0
  228. data/lib/arango/requests/replication/prolong_dump_batch.rb +2 -0
  229. data/lib/arango/requests/replication/set_applier_config.rb +2 -0
  230. data/lib/arango/requests/replication/start_applier.rb +2 -0
  231. data/lib/arango/requests/replication/stop_applier.rb +2 -0
  232. data/lib/arango/requests/replication/synchronize.rb +2 -0
  233. data/lib/arango/requests/task/all.rb +2 -0
  234. data/lib/arango/requests/task/create.rb +3 -0
  235. data/lib/arango/requests/task/create_with_id.rb +3 -0
  236. data/lib/arango/requests/task/delete.rb +3 -0
  237. data/lib/arango/requests/task/get.rb +3 -0
  238. data/lib/arango/requests/transaction/begin.rb +3 -0
  239. data/lib/arango/requests/transaction/commit.rb +3 -0
  240. data/lib/arango/requests/transaction/delete.rb +3 -0
  241. data/lib/arango/requests/transaction/execute.rb +3 -0
  242. data/lib/arango/requests/transaction/list_running.rb +2 -0
  243. data/lib/arango/requests/transaction/status.rb +2 -0
  244. data/lib/arango/requests/user/clear_collection_access_level.rb +3 -0
  245. data/lib/arango/requests/user/clear_database_access_level.rb +3 -0
  246. data/lib/arango/requests/user/create.rb +3 -0
  247. data/lib/arango/requests/user/delete.rb +3 -0
  248. data/lib/arango/requests/user/get.rb +3 -0
  249. data/lib/arango/requests/user/get_collection_access_level.rb +3 -0
  250. data/lib/arango/requests/user/get_database_access_level.rb +3 -0
  251. data/lib/arango/requests/user/list_all.rb +3 -1
  252. data/lib/arango/requests/user/list_databases.rb +2 -0
  253. data/lib/arango/requests/user/replace.rb +2 -0
  254. data/lib/arango/requests/user/set_collection_access_level.rb +2 -0
  255. data/lib/arango/requests/user/set_database_access_level.rb +2 -0
  256. data/lib/arango/requests/user/update.rb +2 -0
  257. data/lib/arango/requests/view/create_search_view.rb +3 -0
  258. data/lib/arango/requests/view/delete.rb +4 -1
  259. data/lib/arango/requests/view/get.rb +3 -0
  260. data/lib/arango/requests/view/get_properties.rb +3 -0
  261. data/lib/arango/requests/view/list_all.rb +2 -0
  262. data/lib/arango/requests/view/rename.rb +2 -0
  263. data/lib/arango/requests/view/set_search_view_properties.rb +3 -1
  264. data/lib/arango/requests/view/update_search_view_properties.rb +2 -0
  265. data/lib/arango/requests/wal/flush.rb +3 -0
  266. data/lib/arango/requests/wal/get_properties.rb +4 -0
  267. data/lib/arango/requests/wal/set_properties.rb +2 -0
  268. data/lib/arango/requests/wal/transactions.rb +2 -0
  269. data/lib/arango/result.rb +4 -0
  270. data/lib/arango/search_view.rb +5 -1
  271. data/lib/arango/server/administration.rb +5 -1
  272. data/lib/arango/server/agency.rb +2 -0
  273. data/lib/arango/server/async.rb +3 -1
  274. data/lib/arango/server/databases.rb +2 -0
  275. data/lib/arango/server/monitoring.rb +2 -0
  276. data/lib/arango/server/opal_support.rb +2 -0
  277. data/lib/arango/server/tasks.rb +2 -0
  278. data/lib/arango/server/user.rb +2 -0
  279. data/lib/arango/server.rb +3 -2
  280. data/lib/arango/task.rb +3 -2
  281. data/lib/arango/transaction.rb +3 -2
  282. data/lib/arango/user.rb +78 -39
  283. data/lib/arango/version.rb +2 -1
  284. data/lib/arango/view/basics.rb +6 -0
  285. data/lib/arango/view.rb +3 -2
  286. data/lib/arango.rb +42 -0
  287. data/lib/arangodb-driver.rb +2 -7
  288. metadata +2 -46
  289. data/arango_opal.js +0 -25855
  290. data/lib/arango/document_collection/vertices.rb +0 -0
@@ -1,6 +1,8 @@
1
1
  module Arango
2
2
  module Requests
3
+ # User Requests
3
4
  module User
5
+ # API: PUT {/dbcontext}/_api/user/{user}/database/{database}
4
6
  class SetDatabaseAccessLevel < Arango::Request
5
7
  self.request_method = :put
6
8
 
@@ -1,6 +1,8 @@
1
1
  module Arango
2
2
  module Requests
3
+ # User Requests
3
4
  module User
5
+ # API: PATCH {/dbcontext}/_api/user/{user}
4
6
  class Update < Arango::Request
5
7
  self.request_method = :patch
6
8
 
@@ -1,6 +1,9 @@
1
1
  module Arango
2
+ # Arango Requests
2
3
  module Requests
4
+ # View Requests
3
5
  module View
6
+ # API: POST {/dbcontext}/_api/view#arangosearch
4
7
  class CreateSearchView < Arango::Request
5
8
  self.request_method = :post
6
9
 
@@ -1,8 +1,11 @@
1
1
  module Arango
2
+ # Arango Requests
2
3
  module Requests
4
+ # View Requests
3
5
  module View
6
+ # API: DELETE {/dbcontext}/_api/view/{name}
4
7
  class Delete < Arango::Request
5
- self.request_method = :post
8
+ self.request_method = :delete
6
9
 
7
10
  self.uri_template = '{/dbcontext}/_api/view/{name}'
8
11
 
@@ -1,6 +1,9 @@
1
1
  module Arango
2
+ # Arango Requests
2
3
  module Requests
4
+ # View Requests
3
5
  module View
6
+ # API: GET {/dbcontext}/_api/view/{name}
4
7
  class Get < Arango::Request
5
8
  self.request_method = :get
6
9
 
@@ -1,6 +1,9 @@
1
1
  module Arango
2
+ # Arango Requests
2
3
  module Requests
4
+ # View Requests
3
5
  module View
6
+ # API: GET {/dbcontext}/_api/view/{name}/properties
4
7
  class GetProperties < Arango::Request
5
8
  self.request_method = :get
6
9
 
@@ -1,6 +1,8 @@
1
1
  module Arango
2
2
  module Requests
3
+ # View Requests
3
4
  module View
5
+ # API: GET {/dbcontext}/_api/view
4
6
  class ListAll < Arango::Request
5
7
  self.request_method = :get
6
8
 
@@ -1,6 +1,8 @@
1
1
  module Arango
2
2
  module Requests
3
+ # View Requests
3
4
  module View
5
+ # API: PUT {/dbcontext}/_api/view/{name}/rename
4
6
  class Rename < Arango::Request
5
7
  self.request_method = :put
6
8
 
@@ -1,8 +1,10 @@
1
1
  module Arango
2
2
  module Requests
3
+ # View Requests
3
4
  module View
5
+ # API: PUT {/dbcontext}/_api/view/{name}/properties#ArangoSearch
4
6
  class SetSearchViewProperties < Arango::Request
5
- self.request_method = :out
7
+ self.request_method = :put
6
8
 
7
9
  self.uri_template = '{/dbcontext}/_api/view/{name}/properties#ArangoSearch'
8
10
 
@@ -1,6 +1,8 @@
1
1
  module Arango
2
2
  module Requests
3
+ # View Requests
3
4
  module View
5
+ # API: PATCH {/dbcontext}/_api/view/{name}/properties#ArangoSearch
4
6
  class UpdateSearchViewProperties < Arango::Request
5
7
  self.request_method = :patch
6
8
 
@@ -1,6 +1,9 @@
1
1
  module Arango
2
+ # Arango Requests
2
3
  module Requests
4
+ # Wal Requests
3
5
  module Wal
6
+ # API: PUT /_admin/wal/flush
4
7
  class Flush < Arango::Request
5
8
  self.request_method = :put
6
9
 
@@ -1,6 +1,9 @@
1
1
  module Arango
2
+ # Arango Requests
2
3
  module Requests
4
+ # Wal Requests
3
5
  module Wal
6
+ # API: GET /_admin/wal/properties
4
7
  class GetProperties < Arango::Request
5
8
  self.request_method = :get
6
9
 
@@ -8,6 +11,7 @@ module Arango
8
11
 
9
12
  code 200, :success
10
13
  code 405, "Invalid HTTP method!"
14
+ code 501, "Invalid: called on cluster coordinator"
11
15
  end
12
16
  end
13
17
  end
@@ -1,6 +1,8 @@
1
1
  module Arango
2
2
  module Requests
3
+ # Wal Requests
3
4
  module Wal
5
+ # API: PUT /_admin/wal/properties
4
6
  class SetProperties < Arango::Request
5
7
  self.request_method = :put
6
8
 
@@ -1,6 +1,8 @@
1
1
  module Arango
2
2
  module Requests
3
+ # Wal Requests
3
4
  module Wal
5
+ # API: GET /_admin/wal/transactions
4
6
  class Transactions < Arango::Request
5
7
  self.request_method = :get
6
8
 
data/lib/arango/result.rb CHANGED
@@ -1,4 +1,8 @@
1
1
  module Arango
2
+ #
3
+ # Arango Result
4
+ # implements result representation from Arango::Request
5
+ #
2
6
  class Result
3
7
  def initialize(result)
4
8
  @result = result ? result : {}
@@ -1,4 +1,8 @@
1
1
  module Arango
2
+ #
3
+ # Arango SearchView
4
+ # - not implemented -
5
+ #
2
6
  class SearchView
3
7
  def initialize
4
8
 
@@ -20,4 +24,4 @@ module Arango
20
24
 
21
25
  end
22
26
  end
23
- end
27
+ end
@@ -1,5 +1,9 @@
1
1
  module Arango
2
+ #
3
+ # Arango Server
4
+ #
2
5
  class Server
6
+ # Arango Server Administration
3
7
  module Administration
4
8
  # Check availability of the server.
5
9
  # @return [Boolean]
@@ -268,7 +272,7 @@ module Arango
268
272
  # A value of 0 means that write-throttling will not be triggered.
269
273
  # return [Arango::Result]
270
274
  def wal_properties
271
- result = request(get: "_admin/wal/properties")
275
+ result = Arango::Requests::Wal::GetProperties.execute(server: self)
272
276
  raise "WAL properties not available." if result.response_code >= 500
273
277
  result
274
278
  end
@@ -1,5 +1,7 @@
1
1
  module Arango
2
+ # Arango Server
2
3
  class Server
4
+ # Arango Server Agency
3
5
  module Agency
4
6
  def agency_config
5
7
  request("GET", "_api/agency/config")
@@ -1,5 +1,7 @@
1
1
  module Arango
2
+ # Arango Server
2
3
  class Server
4
+ # Arango Server Async
3
5
  module Async
4
6
  # === ASYNC ===
5
7
 
@@ -48,4 +50,4 @@ module Arango
48
50
  end
49
51
  end
50
52
  end
51
- end
53
+ end
@@ -1,5 +1,7 @@
1
1
  module Arango
2
+ # Arango Server
2
3
  class Server
4
+ # Arango Server Databases
3
5
  module Databases
4
6
  # Retrieves all databases.
5
7
  # @return [Array<Arango::Database>]
@@ -1,5 +1,7 @@
1
1
  module Arango
2
+ # Arango Server
2
3
  class Server
4
+ # Arango Server Monitoring
3
5
  module Monitoring
4
6
  # === MONITORING ===
5
7
 
@@ -1,5 +1,7 @@
1
1
  module Arango
2
+ # Arango Server
2
3
  class Server
4
+ # Arango Server OpalSupport
3
5
  module OpalSupport
4
6
  # From the Arango 2.8 documentation:
5
7
  #
@@ -1,5 +1,7 @@
1
1
  module Arango
2
+ # Arango Server
2
3
  class Server
4
+ # Arango Server Tasks
3
5
  module Tasks
4
6
 
5
7
  # Get all tasks.
@@ -1,5 +1,7 @@
1
1
  module Arango
2
+ # Arango Server
2
3
  class Server
4
+ # Arango Server User
3
5
  module User
4
6
  # Retrieves all users.
5
7
  # @return [Array<Arango::User>]
data/lib/arango/server.rb CHANGED
@@ -1,6 +1,7 @@
1
- # === SERVER ===
2
-
3
1
  module Arango
2
+ #
3
+ # Arango Server
4
+ #
4
5
  class Server
5
6
  include Arango::Helper::Satisfaction
6
7
  include Arango::Server::Administration
data/lib/arango/task.rb CHANGED
@@ -1,6 +1,7 @@
1
- # === TASK ===
2
-
3
1
  module Arango
2
+ #
3
+ # Arango Task
4
+ #
4
5
  class Task
5
6
  include Arango::Helper::Satisfaction
6
7
  include Arango::Helper::DatabaseAssignment
@@ -1,6 +1,7 @@
1
- # === TRANSACTION ===
2
-
3
1
  module Arango
2
+ #
3
+ # Arango Transaction
4
+ #
4
5
  class Transaction
5
6
  include Arango::Helper::Satisfaction
6
7
 
data/lib/arango/user.rb CHANGED
@@ -1,4 +1,7 @@
1
1
  module Arango
2
+ #
3
+ # Arango User
4
+ #
2
5
  class User
3
6
  include Arango::Helper::Satisfaction
4
7
 
@@ -11,24 +14,45 @@ module Arango
11
14
  result.map { |u| self.new(server: server, **u) }
12
15
  end
13
16
 
17
+ # Create new user
18
+ # @param name [String]
19
+ # @param password [String]
20
+ # @param extra
21
+ # @param server [Arango::Server], defaults to {current_server}
22
+ # @return [Arango::User]
14
23
  def create(name:, password: "", extra: {}, active: nil, server: Arango.current_server)
15
24
  self.new.create(server: server, password: password, extra: extra, active: active)
16
25
  end
17
26
 
27
+ # Get user by name
28
+ # @param name [String]
29
+ # @param server [Arango::Server], defaults to {current_server}
30
+ # @return [Arango::User]
18
31
  def get(name:, server: Arango.current_server)
19
32
  result = Arango::Requests::User::Get.execute(server: server, args: { user: name })
20
33
  self.new(server: server, **result)
21
34
  end
22
35
 
36
+ # List users
37
+ # # @param server [Arango::Server], defaults to {current_server}
38
+ # @return [Array] of user names
23
39
  def list(server: Arango.current_server)
24
- result = Arango::Requests::User::List.execcute(server: server)
40
+ result = Arango::Requests::User::List.execute(server: server)
25
41
  result.map { |u| u.name }
26
42
  end
27
43
 
44
+ # Delete user by name
45
+ # @param name [String]
46
+ # @param server [Arango::Server], defaults to {current_server}
47
+ # @return [Arango::Result]
28
48
  def drop(name:, server: Arango.current_server)
29
- Arango::Requests::User::Delete.exceute(server: server, args: { user: name })
49
+ Arango::Requests::User::Delete.execute(server: server, args: { user: name })
30
50
  end
31
51
 
52
+ # Check if user exists
53
+ # @param name [String]
54
+ # @param server [Arango::Server], defaults to {current_server}
55
+ # @return [Boolean]
32
56
  def exists?(name:, server: Arango.current_server)
33
57
  !!Arango::Requests::User::Get.execute(server: server, args: { user: name })
34
58
  rescue
@@ -36,41 +60,20 @@ module Arango
36
60
  end
37
61
  end
38
62
 
39
- def initialize(server:, password: "", name:, extra: {}, active: nil)
40
- @server = server
41
- @password = password
42
- @name = name
43
- @extra = extra
44
- @active = active
45
- end
46
-
47
63
  attr_accessor :name, :extra, :active
48
64
  attr_writer :password
49
65
  attr_reader :server
50
66
 
51
- def create
52
- body = {
53
- user: name,
54
- passwd: password,
55
- extra: extra,
56
- active: active
57
- }
58
- Arango::Requests::User::Create.new(server: server, body: body).execute
59
- self
60
- end
61
-
62
- def reload
63
- result = @server.request("GET", "_api/user/#{@name}", body: body)
64
- return_element(result)
65
- end
66
-
67
+ #
68
+ # Replace user record
69
+ #
67
70
  def replace(password: @password, active: @active, extra: @extra)
68
71
  body = {
69
72
  passwd: password,
70
73
  active: active,
71
74
  extra: extra
72
75
  }
73
- result = @server.request("PUT", "_api/user/#{@name}", body: body)
76
+ result = Arango::Requests::User::Replace.execute(body: body)
74
77
  @password = password
75
78
  return_element(result)
76
79
  end
@@ -81,31 +84,55 @@ module Arango
81
84
  active: active,
82
85
  extra: extra
83
86
  }
84
- result = @server.request("PATCH", "_api/user/#{@name}", body: body)
87
+ result = Arango::Requests::User::Update.execute(body: body)
85
88
  @password = password
86
89
  return_element(result)
87
90
  end
88
91
 
89
- def destroy
90
- result = @server.request("DELETE", "_api/user/#{@name}")
91
- return return_directly?(result) ? result : true
92
+ # Create new user
93
+ def initialize(server:, password: "", name:, extra: {}, active: nil)
94
+ @server = server
95
+ @password = password
96
+ @name = name
97
+ @extra = extra
98
+ @active = active
92
99
  end
93
100
 
94
- # == ACCESS ==
101
+ def create
102
+ body = {
103
+ user: name,
104
+ passwd: password,
105
+ extra: extra,
106
+ active: active
107
+ }
108
+ Arango::Requests::User::Create.new(server: server, body: body).execute
109
+ self
110
+ end
95
111
 
112
+ # Grant access to database
113
+ # @param grant [String] one of `rw`, `ro`, `none`
114
+ # @param database [String] or [Arango::Database]
115
+ # @return
96
116
  def add_database_access(grant:, database:)
97
117
  satisfy_category?(grant, %w[rw ro none])
98
118
  satisfy_class_or_string?(database, Arango::Database)
99
119
  database = database.name if database.is_a?(Arango::Database)
100
120
  body = { grant: grant }
101
- result = @server.request("PUT", "_api/user/#{@name}/database/#{database}", body: body)
121
+ result = Arango::Requests::User::SetDatabaseAccessLevel.execute(user: self.name, database: database, body: body)
102
122
  return return_directly?(result) ? result : result[database.to_sym]
103
123
  end
104
124
 
125
+ # Grant read-write access to database
126
+ # @param database [String] or [Arango::Database]
105
127
  def grant(database:)
106
128
  add_database_access(grant: "rw", database: database)
107
129
  end
108
130
 
131
+ # Grant access to database collection
132
+ # @param grant [String] one of `rw`, `ro`, `none`
133
+ # @param database [String] or [Arango::Database]
134
+ # @param database [String] or [Arango::DocumentCollection]
135
+ # @return
109
136
  def add_collection_access(grant:, database:, collection:)
110
137
  satisfy_category?(grant, %w[rw ro none])
111
138
  satisfy_class_or_string?(database, Arango::Database)
@@ -113,47 +140,59 @@ module Arango
113
140
  database = database.name if database.is_a?(Arango::Database)
114
141
  collection = collection.name if collection.is_a?(Arango::DocumentCollection)
115
142
  body = { grant: grant }
116
- result = @server.request("PUT", "_api/user/#{@name}/database/#{database}/#{collection}", body: body)
143
+ result = Arango::Requests::User::SetCollectionAccessLevel.execute(user: self.name, database: database, collection: collection, body: body)
117
144
  return return_directly?(result) ? result : result[:"#{database}/#{collection}"]
118
145
  end
119
146
 
147
+ # Revoke user access to database
148
+ # @param database [String] or [Arango::Database]
120
149
  def revoke_database_access(database:)
121
150
  satisfy_class_or_string?(database, Arango::Database)
122
151
  database = database.name if database.is_a?(Arango::Database)
123
- result = @server.request("DELETE", "_api/user/#{@name}/database/#{database}")
152
+ result = Arango::Requests::User::ClearDatabaseAccessLevel.execute(user: self.name, database: database)
124
153
  return return_directly?(result) ? result : true
125
154
  end
126
155
  alias revoke revoke_database_access
127
156
 
157
+ # Revoke user access to database collection
158
+ # @param database [String] or [Arango::Database]
159
+ # @param database [String] or [Arango::DocumentCollection]
128
160
  def revoke_collection_access(database:, collection:)
129
161
  satisfy_class_or_string?(database, Arango::Database)
130
162
  satisfy_module_or_string?(collection, Arango::DocumentCollection)
131
163
  database = database.name if database.is_a?(Arango::Database)
132
164
  collection = collection.name if collection.is_a?(Arango::DocumentCollection)
133
- result = @server.request("DELETE", "_api/user/#{@name}/database/#{database}/#{collection}")
165
+ result = Arango::Requests::User::ClearCollectionAccessLevel.execute(user: self.name, database: database, collection: collection)
134
166
  return return_directly?(result) ? result : true
135
167
  end
136
168
 
169
+ # List databases a user has access to
170
+ # @param: full
137
171
  def list_access(full: nil)
138
172
  query = { full: full }
139
- result = @server.request("GET", "_api/user/#{@name}/database", query: query)
173
+ result = Arango::Requests::User::ListDatabases.execute(body: query)
140
174
  return return_directly?(result) ? result : result[:result]
141
175
  end
142
176
  alias databases list_access
143
177
 
178
+ # Get user access level for database
179
+ # @param database [String] or [Arango::Database]
144
180
  def database_access(database:)
145
181
  satisfy_class_or_string?(database, Arango::Database)
146
182
  database = database.name if database.is_a?(Arango::Database)
147
- result = @server.request("GET", "_api/user/#{@name}/database/#{database}")
183
+ result = Arango::Requests::User::GetDatabaseAccessLevel.execute(name: self.name, database: database)
148
184
  return return_directly?(result) ? result : result[:result]
149
185
  end
150
186
 
187
+ # Get user access level for database collection
188
+ # @param database [String] or [Arango::Database]
189
+ # @param database [String] or [Arango::DocumentCollection]
151
190
  def collection_access(database:, collection:)
152
191
  satisfy_class_or_string?(database, Arango::Database)
153
192
  satisfy_module_or_string?(collection, Arango::DocumentCollection::Mixin)
154
193
  database = database.name if database.is_a?(Arango::Database)
155
194
  collection = collection.name if collection.is_a?(Arango::DocumentCollection)
156
- result = @server.request("GET", "_api/user/#{@name}/database/#{database}/#{collection}", body: body)
195
+ result = Arango::Requests::User::GetCollectionAccessLevel.execute(name: self.name, database: database, collection: collection)
157
196
  return return_directly?(result) ? result : result[:result]
158
197
  end
159
198
  end
@@ -1,3 +1,4 @@
1
1
  module Arango
2
- VERSION = '3.10.4'
2
+ # version of arangodb-driver
3
+ VERSION = '3.10.4.1'
3
4
  end
@@ -1,5 +1,11 @@
1
1
  module Arango
2
+ #
3
+ # Arango View
4
+ #
2
5
  module View
6
+ #
7
+ # Arango View Basics
8
+ #
3
9
  module Basics
4
10
  def exists?
5
11
 
data/lib/arango/view.rb CHANGED
@@ -1,6 +1,7 @@
1
- # ==== DOCUMENT ====
2
-
3
1
  module Arango
2
+ #
3
+ # Arango View
4
+ #
4
5
  class View
5
6
  include Arango::Helper::Satisfaction
6
7
 
data/lib/arango.rb CHANGED
@@ -1,31 +1,64 @@
1
+ #
2
+ # Arango toplevel module
3
+ #
4
+
1
5
  module Arango
2
6
  class << self
7
+ # get current backend driver
8
+ # @return [Arango::Driver]
3
9
  def driver
4
10
  @driver_class
5
11
  end
6
12
 
13
+ # set backend driver
14
+ # @param dc [Arango::Driver]
7
15
  def driver=(dc)
8
16
  @driver_class = dc
9
17
  end
10
18
 
19
+ # get current server
20
+ # @return [Arango::Server]
11
21
  def current_server
12
22
  @current_server
13
23
  end
14
24
 
25
+ # get current server's database
26
+ # @return [Arango::Database]
15
27
  def current_database
16
28
  @current_server.current_database
17
29
  end
18
30
 
31
+ # set current server
32
+ # @param s [Arango::Server]
19
33
  def current_server=(s)
20
34
  @current_server = s
21
35
  end
22
36
 
37
+ # connect to database of current server
38
+ # sets current_database
39
+ # @param username [String] defaults to 'root'
40
+ # @param password [String]
41
+ # @param host [String] defaults to 'localhost'
42
+ # @param port [String] defaults to '8529'
43
+ # @param tls [Boolean] 'true' for a secure (https) connection, default to false
44
+ # @param database [String] name of database to connect to
45
+ # @param driver_options [Hash] driver specific options, defaults to nil
46
+ # @return [Arango::Database]
23
47
  def connect_to_database(username: "root", password:, host: "localhost", port: "8529", tls: false, database:, driver_options: nil)
24
48
  server = connect_to_server(username: username, password: password, host: host, port: port, tls: false, driver_options: driver_options)
25
49
  database = server.get_database(database)
26
50
  server.current_database = database
27
51
  end
28
52
 
53
+ # connect to server
54
+ # sets current_server (if not set !)
55
+ # @param username [String] defaults to 'root'
56
+ # @param password [String]
57
+ # @param host [String] defaults to 'localhost'
58
+ # @param port [String] defaults to '8529'
59
+ # @param tls [Boolean] 'true' for a secure (https) connection, default to false
60
+ # @param driver_options [Hash] driver specific options, defaults to nil
61
+ # @return [Arango::Server]
29
62
  def connect_to_server(username: "root", password:, host: "localhost", port: "8529", tls: false, driver_options: nil)
30
63
  server = Arango::Server.new(username: username, password: password, host: host, port: port, tls: tls, driver_options: driver_options)
31
64
  @current_server = server unless @current_server
@@ -33,6 +66,9 @@ module Arango
33
66
  end
34
67
  end
35
68
 
69
+ # define batch_ variant
70
+ # @param target_class [Class]
71
+ # @param method_name [String]
36
72
  def self.request_class_method(target_class, method_name, &block)
37
73
  promise_method_name = "batch_#{method_name}".to_sym
38
74
  target_class.define_singleton_method(method_name) do |*args|
@@ -59,6 +95,9 @@ module Arango
59
95
  end
60
96
  end
61
97
 
98
+ # define batch_ variant
99
+ # @param target_class [Class]
100
+ # @param method_name [String]
62
101
  def self.multi_request_class_method(target_class, method_name, &block)
63
102
  promise_method_name = "batch_#{method_name}".to_sym
64
103
  target_class.define_singleton_method(method_name) do |*args|
@@ -89,6 +128,9 @@ module Arango
89
128
  end
90
129
  end
91
130
 
131
+ # define batch_ variant
132
+ # @param target_class [Class]
133
+ # @param method_name [String]
92
134
  def self.aql_request_class_method(target_class, method_name, &block)
93
135
  promise_method_name = "batch_#{method_name}".to_sym
94
136
  target_class.define_singleton_method(method_name) do |*args|