Class: ApiAiRuby::RequestQuery

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

Direct Known Subclasses

TextRequest, VoiceRequest

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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



12
13
14
15
16
17
18
19
20
21
# File 'lib/api-ai-ruby/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[:lang] = client.api_lang
  @options = options
  @headers = {
      Authorization: 'Bearer ' + client.client_access_token,
  }
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



6
7
8
# File 'lib/api-ai-ruby/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_query.rb', line 6

def headers
  @headers
end

#optionsObject

Returns the value of attribute options.



6
7
8
# File 'lib/api-ai-ruby/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_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_query.rb', line 6

def uri
  @uri
end

Instance Method Details

#performArray, Hash



24
25
26
27
28
29
30
# File 'lib/api-ai-ruby/request_query.rb', line 24

def perform
  options_key = @options.has_key?(:voiceData) ? :form : :json
  response = HTTP.with(@headers).public_send(@request_method, @uri.to_s, options_key => @options)
  response_body = symbolize_keys!(response.parse)
  response_headers = response.headers
  fail_or_return_response_body(response.code, response_body)
end