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 Metrics/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
31 32 33 34 35 36 37 |
# File 'lib/diplomat/query.rb', line 31 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
43 44 45 46 47 |
# File 'lib/diplomat/query.rb', line 43 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 Metrics/PerceivedComplexity
69 70 71 72 73 74 75 76 |
# File 'lib/diplomat/query.rb', line 69 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
83 84 85 86 87 |
# File 'lib/diplomat/query.rb', line 83 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
12 13 14 15 16 |
# File 'lib/diplomat/query.rb', line 12 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
21 22 23 24 25 |
# File 'lib/diplomat/query.rb', line 21 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
54 55 56 57 58 |
# File 'lib/diplomat/query.rb', line 54 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 |