Class: ApiAiRuby::RequestQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/api-ai-ruby/request/request_query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, options = {}) ⇒ ApiAiRuby::RequestQuery

Parameters:



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/api-ai-ruby/request/request_query.rb', line 12

def initialize(client, options = {})
  @client = client
  @uri = client.api_base_url + 'query?v=' + client.api_version
  @request_method = :post
  options[:sessionId] = client.api_session_id
  @options = options
  @headers = {
      Authorization: 'Bearer ' + client.client_access_token,
  }
  @timeout_options = client.timeout_options || options[:timeout_options]
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



6
7
8
# File 'lib/api-ai-ruby/request/request_query.rb', line 6

def client
  @client
end

#headersObject

Returns the value of attribute headers.



6
7
8
# File 'lib/api-ai-ruby/request/request_query.rb', line 6

def headers
  @headers
end

#optionsObject

Returns the value of attribute options.



6
7
8
# File 'lib/api-ai-ruby/request/request_query.rb', line 6

def options
  @options
end

#request_methodObject

Returns the value of attribute request_method.



6
7
8
# File 'lib/api-ai-ruby/request/request_query.rb', line 6

def request_method
  @request_method
end

#uriObject

Returns the value of attribute uri.



6
7
8
# File 'lib/api-ai-ruby/request/request_query.rb', line 6

def uri
  @uri
end

Instance Method Details

#performHash

Returns:

  • (Hash)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/api-ai-ruby/request/request_query.rb', line 25

def perform
  if @options && @options.is_a?(Hash) && @options.has_key?(:voiceData)
    options_key = :form
  else
    options_key = (@request_method === :get) ? :params : :json
  end

  request = HTTP.headers(@headers)
  request = request.timeout(*@timeout_options) if @timeout_options
  response = request.public_send(@request_method, @uri.to_s, options_key => @options) if @options
  response = request.public_send(@request_method, @uri.to_s) if @options == nil
  response_body = symbolize_keys!(response.parse)
  fail_or_return_response_body(response.code, response_body)
end