class ActiveForce::Bulk::JobResult

Attributes

errors[RW]
failed[RW]
job[R]
stats[R]
successful[RW]

Public Class Methods

new(job:) click to toggle source
# File lib/active_force/bulk/job_result.rb, line 6
def initialize(job:)
  @job = job
  @stats = result_from_job_info
  @failed = failed_results
  @successful = successful_results
  @errors = errors_from_failed_results
end

Public Instance Methods

success?() click to toggle source
# File lib/active_force/bulk/job_result.rb, line 14
def success?
  failed.blank? && successful.present?
end

Private Instance Methods

errors_from_failed_results() click to toggle source
# File lib/active_force/bulk/job_result.rb, line 21
def errors_from_failed_results
  return [] if @stats[:number_records_failed].zero? || self.failed.blank?

  self.errors = self.failed.pluck('sf__Error').uniq
end
failed_results() click to toggle source
# File lib/active_force/bulk/job_result.rb, line 27
def failed_results
  return [] if @stats[:number_records_failed].zero?

  response = job.failed_results
  self.failed = CSV.parse(response.body, headers: true).map(&:to_h)
end
job_info() click to toggle source
# File lib/active_force/bulk/job_result.rb, line 39
def job_info
  job.info
end
result_from_job_info() click to toggle source
# File lib/active_force/bulk/job_result.rb, line 43
def result_from_job_info
  job_info&.body.slice('numberRecordsProcessed', 'numberRecordsFailed', 'totalProcessingTime').transform_keys { |k| k.to_s.underscore.to_sym }
end
successful_results() click to toggle source
# File lib/active_force/bulk/job_result.rb, line 34
def successful_results
  response = job.successful_results
  self.successful = CSV.parse(response.body, headers: true).map(&:to_h)
end