Sha256: feea3c70e2cb5824ce616f37b5c713ef5fdb24944973a34aebc8d07713848ef3
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
class Bulkforce class Batch attr_reader :job_id def initialize connection, job_id, batch_id @connection = connection @job_id = job_id @batch_id = batch_id if @batch_id == -1 @final_status = { state: "Completed", state_message: "Empty Request" } end end def final_status poll_interval=2 return @final_status if @final_status @final_status = self.status while ["Queued", "InProgress"].include?(@final_status[:state]) sleep poll_interval @final_status = self.status yield @final_status if block_given? end raise @final_status[:state_message] if @final_status[:state] == "Failed" @final_status.merge({ results: results }) end def status @connection.query_batch @job_id, @batch_id end # results returned from Salesforce can be a single page id, or an array of ids. # if it"s an array of ids, we will fetch the results from each, and concatenate them. def results Array(query_result_id).map do |result_id| @connection.query_batch_result_data(@job_id, @batch_id, result_id) end.flatten end def raw_request @connection.raw_request end def raw_result @connection.raw_result end private def query_result_id result_raw = @connection.query_batch_result_id(@job_id, @batch_id) result_raw[:result] if result_raw end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bulkforce-1.0.0 | lib/bulkforce/batch.rb |