module Tradesman::ExistingRecordsMultipleExecute

Private Instance Methods

execute_multiple(params_hash) click to toggle source
# File lib/tradesman/mixins/existing_records_multiple_execute.rb, line 10
def execute_multiple(params_hash)
  params = params_hash[:params] || params_hash.except(:id)

  params_hash[:id].to_enum.with_index.map do |id, index|
    begin
      execute_single(single_params(id, params, index))
    rescue *self.class.expected_errors_map.keys => e
      Horza::Entities::Single.new(id: id, valid: false, message: e.message)
    end
  end
end
params_at_index(params, index) click to toggle source
# File lib/tradesman/mixins/existing_records_multiple_execute.rb, line 26
def params_at_index(params, index)
  return params unless params.is_a? Array
  params[index]
end
query_for_ids(params) click to toggle source
# File lib/tradesman/mixins/existing_records_multiple_execute.rb, line 5
def query_for_ids(params)
  params[:id] = self.class.adapter.find_all(conditions: params[:id]).collect &:id
  params
end
single_params(id, params, index) click to toggle source
# File lib/tradesman/mixins/existing_records_multiple_execute.rb, line 22
def single_params(id, params, index)
  { id: id }.merge(params_at_index(params, index))
end