Module: ApiAi::Request

Included in:
Session
Defined in:
lib/api_ai/request.rb

Overview

Methods to do http requests

Instance Method Summary collapse

Instance Method Details

#do_http(uri, request) ⇒ Net::HTTPResponse

Handle http requests

Parameters:

  • uri (URI::HTTPS)

    API uri

  • request (Object)

    request object

Returns:

  • (Net::HTTPResponse)


21
22
23
24
25
26
27
28
29
30
31
# File 'lib/api_ai/request.rb', line 21

def do_http(uri, request)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  # Let then know about us
  request['User-Agent'] = 'SlackRubyAPIWrapper'
  begin
    http.request(request)
  rescue OpenSSL::SSL::SSLError => e
    raise Slack::Error, 'SSL error connecting to Slack.'
  end
end

#do_http_with_body(uri, request, body) ⇒ Object

:nodoc:



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/api_ai/request.rb', line 33

def do_http_with_body(uri, request, body) # :nodoc:
  unless body.nil?
    if body.is_a?(Hash)
      request['Content-Type'] = 'application/json; charset=utf-8'
      request.body = clean_params(body).to_json
    else
      s = body.to_s
      request['Content-Length'] = s.length
      request.body = s
    end
  end
  do_http(uri, request)
end

#make_query_string(params) ⇒ String

Convert params to query string

Parameters:

  • params (Hash)

    API call arguments

Returns:

  • (String)


9
10
11
12
13
# File 'lib/api_ai/request.rb', line 9

def make_query_string(params)
  clean_params(params).collect do |k, v|
    CGI.escape(k) + '=' + CGI.escape(v)
  end.join('&')
end