class SalesforceBulkClient::Client

Constants

DEFAULT_CLIENT_OPTIONS

Public Class Methods

new(restforce_client, options = {}) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 9
def initialize(restforce_client, options = {})
  options = {}.merge(DEFAULT_CLIENT_OPTIONS).merge(options)
  @connection = SalesforceBulkClient::Connection.new(options[:salesforce_api_version], restforce_client)
end

Public Instance Methods

delete(sobject, records, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 14
def delete(sobject, records, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5)
  do_operation('delete', sobject, records, nil, get_response, timeout, batch_size, poll_delay)
end
insert(sobject, records, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 18
def insert(sobject, records, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5)
  do_operation('insert', sobject, records, nil, get_response, timeout, batch_size, poll_delay)
end
job_from_id(job_id) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 34
def job_from_id(job_id)
  job = SalesforceBulkClient::Job.new(job_id: job_id, connection: @connection)
  job_status = job.check_job_status
  batches = job.list_batches
  job.instance_variable_set(:@operation, job_status.operation)
  job.instance_variable_set(:@sobject, job_status.object)
  job.instance_variable_set(:@batch_ids, batches.map { |batch_info| batch_info.id })
  job
end
query(sobject, query, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 22
def query(sobject, query, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5)
  do_operation('query', sobject, query,nil, get_response, timeout, batch_size, poll_delay)
end
update(sobject, records, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 26
def update(sobject, records, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5)
  do_operation('update', sobject, records, nil, get_response, timeout, batch_size, poll_delay)
end
upsert(sobject, records, external_field, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 30
def upsert(sobject, records, external_field, get_response = false, batch_size = 10000, timeout = 3600, poll_delay = 5)
  do_operation('upsert', sobject, records, external_field, get_response, timeout, batch_size, poll_delay)
end

Private Instance Methods

do_operation(operation, sobject, records, external_field, get_response, timeout, batch_size, poll_delay) click to toggle source
# File lib/salesforce_bulk_client/client.rb, line 46
def do_operation(operation, sobject, records, external_field, get_response, timeout, batch_size, poll_delay)
  job = SalesforceBulkClient::Job.new(
      operation: operation,
      sobject: sobject,
      records: records,
      external_field: external_field,
      connection: @connection
  )

  job.create_job(batch_size)
  operation.to_s == 'query' ? job.add_query : job.add_batches
  job.close_job
  job.get_job_result(get_response, timeout, poll_delay)
end