class Restforce::Bulk::Batch

Attributes

created_date[RW]
id[RW]
job_id[RW]
number_records_processed[RW]
state[RW]
system_modstamp[RW]

Public Class Methods

builder_class_for(content_type) click to toggle source
# File lib/restforce/bulk/batch.rb, line 19
def builder_class_for(content_type)
  Restforce::Bulk::Builder.const_get(content_type.to_s.camelize)
end
create(job_id, data, operation, content_type=:xml) click to toggle source
# File lib/restforce/bulk/batch.rb, line 7
def create(job_id, data, operation, content_type=:xml)
  builder  = builder_class_for(content_type).new(operation)

  response = Restforce::Bulk.client.perform_request(:post, "job/#{job_id}/batch", builder.transform(data, operation, content_type), content_type)

  new(response.body.batchInfo)
end
find(job_id, id) click to toggle source
# File lib/restforce/bulk/batch.rb, line 15
def find(job_id, id)
  new(job_id: job_id, id: id).tap(&:refresh)
end
new(attributes={}) click to toggle source
# File lib/restforce/bulk/batch.rb, line 26
def initialize(attributes={})
  assign_attributes(attributes)
end

Public Instance Methods

completed?() click to toggle source
# File lib/restforce/bulk/batch.rb, line 38
def completed?
  state == 'Completed'
end
failed?() click to toggle source
# File lib/restforce/bulk/batch.rb, line 42
def failed?
  state == 'Failed'
end
in_progress?() click to toggle source
# File lib/restforce/bulk/batch.rb, line 34
def in_progress?
  state == 'InProgress'
end
not_processed?() click to toggle source
# File lib/restforce/bulk/batch.rb, line 46
def not_processed?
  state == 'Not Processed'
end
queued?() click to toggle source
# File lib/restforce/bulk/batch.rb, line 30
def queued?
  state == 'Queued'
end
refresh() click to toggle source
# File lib/restforce/bulk/batch.rb, line 50
def refresh
  response = Restforce::Bulk.client.perform_request(:get, "job/#{job_id}/batch/#{id}")

  assign_attributes(response.body.batchInfo)
end
results() click to toggle source
# File lib/restforce/bulk/batch.rb, line 56
def results
  response = Restforce::Bulk.client.perform_request(:get, "job/#{job_id}/batch/#{id}/result")
  parser   = results_parser_for(response.body).new

  parser.results_on(response.body).map do |result|
    Restforce::Bulk::Result.new({job_id: job_id, batch_id: id}.merge(result))
  end
end

Protected Instance Methods

results_parser_for(body) click to toggle source
# File lib/restforce/bulk/batch.rb, line 67
def results_parser_for(body)
  body.is_a?(CSV::Table) ? Restforce::Bulk::Parser::Csv : Restforce::Bulk::Parser::Xml
end