Class: Diplomat::Query
- Inherits:
-
RestClient
- Object
- RestClient
- Diplomat::Query
- Defined in:
- lib/diplomat/query.rb
Overview
Methods for interacting with the Consul query API endpoint
Instance Method Summary collapse
-
#create(definition, options = {}) ⇒ String
Create a prepared query or prepared query template.
-
#delete(key, options = {}) ⇒ Boolean
Delete a prepared query or prepared query template.
-
#execute(key, options = {}) ⇒ OpenStruct
Execute a prepared query or prepared query template rubocop:disable PerceivedComplexity.
-
#explain(key, options = {}) ⇒ OpenStruct
Get the fully rendered query template.
-
#get(key, options = {}) ⇒ OpenStruct
Get a prepared query by it’s key.
-
#get_all(options = {}) ⇒ OpenStruct
Get all prepared queries.
-
#update(key, definition, options = {}) ⇒ Boolean
Update a prepared query or prepared query template.
Methods inherited from RestClient
access_method?, #concat_url, #configuration, #initialize, method_missing, respond_to?, respond_to_missing?, #use_named_parameter
Constructor Details
This class inherits a constructor from Diplomat::RestClient
Instance Method Details
#create(definition, options = {}) ⇒ String
Create a prepared query or prepared query template
29 30 31 32 33 34 35 |
# File 'lib/diplomat/query.rb', line 29 def create(definition, = {}) custom_params = [:dc] ? use_named_parameter('dc', [:dc]) : nil @raw = send_post_request(@conn, ['/v1/query'], , definition, custom_params) parse_body rescue Faraday::ClientError raise Diplomat::QueryAlreadyExists end |
#delete(key, options = {}) ⇒ Boolean
Delete a prepared query or prepared query template
41 42 43 44 45 |
# File 'lib/diplomat/query.rb', line 41 def delete(key, = {}) custom_params = [:dc] ? use_named_parameter('dc', [:dc]) : nil ret = send_delete_request(@conn, ["/v1/query/#{key}"], , custom_params) ret.status == 200 end |
#execute(key, options = {}) ⇒ OpenStruct
Execute a prepared query or prepared query template rubocop:disable PerceivedComplexity
67 68 69 70 71 72 73 74 |
# File 'lib/diplomat/query.rb', line 67 def execute(key, = {}) custom_params = [] custom_params << use_named_parameter('dc', [:dc]) if [:dc] custom_params << use_named_parameter('near', [:near]) if [:near] custom_params << use_named_parameter('limit', [:limit]) if [:limit] ret = send_get_request(@conn, ["/v1/query/#{key}/execute"], , custom_params) OpenStruct.new JSON.parse(ret.body) end |
#explain(key, options = {}) ⇒ OpenStruct
Get the fully rendered query template
81 82 83 84 85 |
# File 'lib/diplomat/query.rb', line 81 def explain(key, = {}) custom_params = [:dc] ? use_named_parameter('dc', [:dc]) : nil ret = send_get_request(@conn, ["/v1/query/#{key}/explain"], , custom_params) OpenStruct.new JSON.parse(ret.body) end |
#get(key, options = {}) ⇒ OpenStruct
Get a prepared query by it’s key
10 11 12 13 14 |
# File 'lib/diplomat/query.rb', line 10 def get(key, = {}) custom_params = [:dc] ? use_named_parameter('dc', [:dc]) : nil ret = send_get_request(@conn, ["/v1/query/#{key}"], , custom_params) JSON.parse(ret.body).map { |query| OpenStruct.new query } end |
#get_all(options = {}) ⇒ OpenStruct
Get all prepared queries
19 20 21 22 23 |
# File 'lib/diplomat/query.rb', line 19 def get_all( = {}) custom_params = [:dc] ? use_named_parameter('dc', [:dc]) : nil ret = send_get_request(@conn, ['/v1/query'], , custom_params) JSON.parse(ret.body).map { |query| OpenStruct.new query } end |
#update(key, definition, options = {}) ⇒ Boolean
Update a prepared query or prepared query template
52 53 54 55 56 |
# File 'lib/diplomat/query.rb', line 52 def update(key, definition, = {}) custom_params = [:dc] ? use_named_parameter('dc', [:dc]) : nil ret = send_put_request(@conn, ["/v1/query/#{key}"], , definition, custom_params) ret.status == 200 end |