class Tradesman::Builders::CreateForParent
Attributes
parent_key[R]
Private Instance Methods
execute_multiple(params_hash)
click to toggle source
# File lib/tradesman/builders/create_for_parent.rb, line 30 def execute_multiple(params_hash) params = params_hash[:params] || params_hash.except(:id) params.map do |params| begin execute_single({ id: params_hash[:id] }.merge(params)) rescue *self.class.expected_errors_map.keys => e Horza::Entities::Single.new(id: params[:id], valid: false, message: e.message) end end end
execute_single(params)
click to toggle source
# File lib/tradesman/builders/create_for_parent.rb, line 18 def execute_single(params) self.class.adapter.create_as_child!(parent_args(params), params.except(:id)) end
parent_args(params)
click to toggle source
# File lib/tradesman/builders/create_for_parent.rb, line 22 def parent_args(params) { klass: self.class.parent_key, id: params[:id] } end
relation_id()
click to toggle source
# File lib/tradesman/builders/create_for_parent.rb, line 26 def relation_id "#{self.class.parent_key}_id" end
template_class(args)
click to toggle source
# File lib/tradesman/builders/create_for_parent.rb, line 6 def template_class(args) Class.new(::Tradesman::Template) do include ::Tradesman::ExistingRecordsMultipleExecute @store = Tradesman.adapter.context_for_entity(args[:subject]) @parent_key = args[:parent] class << self attr_reader :parent_key end private def execute_single(params) self.class.adapter.create_as_child!(parent_args(params), params.except(:id)) end def parent_args(params) { klass: self.class.parent_key, id: params[:id] } end def relation_id "#{self.class.parent_key}_id" end def execute_multiple(params_hash) params = params_hash[:params] || params_hash.except(:id) params.map do |params| begin execute_single({ id: params_hash[:id] }.merge(params)) rescue *self.class.expected_errors_map.keys => e Horza::Entities::Single.new(id: params[:id], valid: false, message: e.message) end end end end end