module Restforce::Concerns::BatchAPI
def batch(halt_on_error: false)
def batch(halt_on_error: false) subrequests = Subrequests.new(options) yield(subrequests) subrequests.requests.each_slice(25).map do |requests| properties = { batchRequests: requests, haltOnError: halt_on_error } response = api_post('composite/batch', properties.to_json) body = response.body results = body['results'] if halt_on_error && body['hasErrors'] last_error_index = results.rindex { |result| result['statusCode'] != 412 } last_error = results[last_error_index] raise BatchAPIError, last_error['result'][0]['errorCode'] end results.map(&:compact) end.flatten end
def batch!(&block)
def batch!(&block) batch(halt_on_error: true, &block) end