Class: Copy::Request::Connection

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/copy/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/copy/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/copy/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/copy/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
40
# File 'lib/copy/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
      req['X-Api-Version'] = '1'
      # Todo finish this to work over https
      http = Net::HTTP.new("api.copy.com", Net::HTTP.https_default_port)
      http.verify_mode = OpenSSL::SSL::VERIFY_NONE
      http.use_ssl = true
      http.start do |http|
        http.request(req)
      end
    end
  else
    access_token.send(*request_data)
  end
end

#set_request_dataObject



42
43
44
45
46
47
48
49
50
# File 'lib/copy/request/connection.rb', line 42

def set_request_data
  @request_data = []
  @request_data << @info.http_method if @info
  @request_data << api_url
  unless use_url_params?
    @request_data << body_json
  end
  @request_data << headers
end