class Cased::Query

Public Class Methods

new(client, phrase: nil, variables: {}) click to toggle source

@param client [Cased::HTTP::Client] the HTTP client authorized to query an

audit trail policy

@param phrase [String, nil] the phrase to search for audit trail events @param variables [Hash] the query variables

# File lib/cased/query.rb, line 14
def initialize(client, phrase: nil, variables: {})
  raise ArgumentError, 'variables must be a Hash' unless variables.is_a?(Hash)

  @client = client
  @phrase = phrase
  @page = 1
  @limit = 25
  @variables = variables
end

Public Instance Methods

limit(new_limit) click to toggle source

@param new_limit [Integer] The number of audit trail events to return. @return [Cased::Query]

# File lib/cased/query.rb, line 34
def limit(new_limit)
  @limit = [[new_limit, 100].min, 1].max

  self
end
page(new_page) click to toggle source

@param new_page [Integer] The page of audit trail events to request. @return [Cased::Query]

# File lib/cased/query.rb, line 42
def page(new_page)
  @page = [1, new_page.to_i].max

  self
end
phrase(new_phrase) click to toggle source

@param new_phrase [String] The audit trail policy search phrase. @return [Cased::Query]

# File lib/cased/query.rb, line 26
def phrase(new_phrase)
  @phrase = new_phrase

  self
end
response() click to toggle source
# File lib/cased/query.rb, line 73
def response
  return @response if defined?(@response)

  @response = begin
    resp = @client.get('events') do |req|
      req.params['phrase'] = @phrase unless @phrase.nil?
      req.params['per_page'] = @limit unless @limit.nil?
      req.params['page'] = @page unless @page.nil?
      req.params['variables'] = @variables unless @variables.nil?
    end

    CollectionResponse.new(response: resp)
  rescue Cased::HTTP::Error, Faraday::Error => e
    CollectionResponse.new(exception: e)
  end
end