Class: PlateApi::PostMultipartRequest

Inherits:
Request
  • Object
show all
Defined in:
lib/plate_api/post_multipart_request.rb

Constant Summary collapse

HttpAdapter =
:net_http

Constants inherited from Request

Request::DefaultApiBaseEndpoint

Instance Method Summary collapse

Methods inherited from Request

#calculate_signature, #execute, #request_date

Constructor Details

#initialize(public_key, secret, path, parameters = {}, custom_server = nil) ⇒ PostMultipartRequest

Returns a new instance of PostMultipartRequest.



5
6
7
8
9
# File 'lib/plate_api/post_multipart_request.rb', line 5

def initialize(public_key, secret, path, parameters = {}, custom_server = nil)
  super(public_key, secret, "POST", path, custom_server)

  @post_parameters = map_parameters(parameters)
end

Instance Method Details

#extra_builder_options(builder) ⇒ Object



11
12
13
14
# File 'lib/plate_api/post_multipart_request.rb', line 11

def extra_builder_options(builder)
  builder.request :multipart
  builder.request :url_encoded
end

#extra_request_options(request) ⇒ Object



16
17
18
# File 'lib/plate_api/post_multipart_request.rb', line 16

def extra_request_options(request)
  request.body = @post_parameters
end

#map_parameters(parameters) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/plate_api/post_multipart_request.rb', line 24

def map_parameters(parameters)
  parameters.keys.each do |key|
    val = parameters[key]
    if val.is_a? File
      full_path = File.expand_path(val)
      mime_type = self.mime_type(full_path)
      parameters[key] = Faraday::UploadIO.new(full_path, mime_type)
    end
  end

  return parameters
end

#mime_type(full_path) ⇒ Object



20
21
22
# File 'lib/plate_api/post_multipart_request.rb', line 20

def mime_type(full_path)
  IO.popen(["file", "--brief", "--mime-type", full_path], in: :close, err: :close) { |io| io.read.chomp }
end