class Restforce::Bulk::Client

Public Class Methods

new(restforce_client=nil) click to toggle source
# File lib/restforce/bulk/client.rb, line 4
def initialize(restforce_client=nil)
  @restforce_client = restforce_client
end

Public Instance Methods

connection() click to toggle source
# File lib/restforce/bulk/client.rb, line 8
def connection
  @connection ||= (@restforce_client || Restforce.new).tap do |client|
    client.authenticate!
    client.middleware.insert_after Restforce::Middleware::Authorization, Restforce::Bulk::Middleware::Authorization, client, client.options
    client.middleware.response :xml, content_type: /\bxml$/
    client.middleware.use Restforce::Bulk::Middleware::ParseCsv, content_type: /\bcsv$/
  end
end
perform_request(method, path, data=nil, content_type=:xml, headers={}) click to toggle source
# File lib/restforce/bulk/client.rb, line 17
def perform_request(method, path, data=nil, content_type=:xml, headers={})
  result_headers = content_type_header_for(content_type).merge(headers)

  connection.send(method, [base_path, path].join('/'), data, result_headers)
end

Private Instance Methods

base_path() click to toggle source
# File lib/restforce/bulk/client.rb, line 25
def base_path
  @base_path ||= "/services/async/#{connection.options[:api_version]}"
end
content_type_header_for(content_type) click to toggle source
# File lib/restforce/bulk/client.rb, line 29
def content_type_header_for(content_type)
  { 'Content-Type' => "#{mime_type_for(content_type)} ;charset=UTF-8" }
end
mime_type_for(content_type) click to toggle source
# File lib/restforce/bulk/client.rb, line 33
def mime_type_for(content_type)
  Restforce::Bulk::MIME_TYPE_MAPPING[(content_type || :csv).to_sym]
end