Sha256: fc4ee2abc61ddc53df704771e242023771ab334e66f37a34150b15a088bfc964
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
require_dependency "renalware/letters" # This class is responsible for transforming the attributes # of a letter. The resulting attributes can then # be mass assigned to an ActiveRecord letter object. module Renalware module Letters class LetterParamsProcessor def initialize(patient) @patient = patient end def call(params) params = process_main_recipient_attributes(params) process_cc_recipients_attributes(params) end private def process_main_recipient_attributes(params) return params unless params.has_key?(:main_recipient_attributes) params.merge( main_recipient_attributes: main_recipient_attributes(params) ) end def process_cc_recipients_attributes(params) return params unless params.has_key?(:cc_recipients_attributes) params.merge( cc_recipients_attributes: cc_recipients_attributes(params) ) end def main_recipient_attributes(params) recipient_attributes(params[:main_recipient_attributes]) end def cc_recipients_attributes(params) params[:cc_recipients_attributes].map do |attributes| recipient_attributes(attributes) end end def recipient_attributes(params) RecipientParamsProcessor.new(@patient).call(params) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
renalware-core-2.0.0.pre.beta4 | app/models/renalware/letters/letter_params_processor.rb |