Class: RedboothRuby::Request::Connection

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/redbooth-ruby/request/connection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers

#flatten_hash_keys, #normalize_params

Constructor Details

#initialize(request_info) ⇒ Connection

Returns a new instance of Connection.



9
10
11
12
13
# File 'lib/redbooth-ruby/request/connection.rb', line 9

def initialize(request_info)
  @info = request_info
  @session = @info.session if @info
  @access_token = @info.session.access_token if @session
end

Instance Attribute Details

#access_tokenObject (readonly)

Returns the value of attribute access_token.



7
8
9
# File 'lib/redbooth-ruby/request/connection.rb', line 7

def access_token
  @access_token
end

#request_dataObject (readonly)

Returns the value of attribute request_data.



7
8
9
# File 'lib/redbooth-ruby/request/connection.rb', line 7

def request_data
  @request_data
end

Instance Method Details

#requestObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/redbooth-ruby/request/connection.rb', line 15

def request
  return unless access_token
  if use_body_file?
    ::File.open(body_file_attrs[:local_path]) do |file|
      req = Net::HTTP::Post::Multipart.new(
          api_url,
         'file' => UploadIO.new(file,
                                'application/octet-stream',
                                body_file_attrs[:name]
                               )
      )
      access_token.sign! req
      if RedboothRuby.configuration[:use_ssl]
        http = Net::HTTP.new('redbooth.com' , Net::HTTP.https_default_port)
        http.verify_mode = OpenSSL::SSL::VERIFY_NONE
        http.use_ssl = RedboothRuby.configuration[:use_ssl]
      end
      http.start do |inner_http|
        inner_http.request(req)
      end
    end
  else
    access_token.send(*request_data)
  end
end

#set_request_dataObject



41
42
43
44
45
46
47
48
# File 'lib/redbooth-ruby/request/connection.rb', line 41

def set_request_data
  @request_data = []
  @request_data << @info.http_method if @info
  @request_data << api_url
  unless use_url_params?
    @request_data << { body: body_hash }
  end
end