Sha256: 6743b654394021e8c5d8aa2228f0fed3e526e243c15ab2f39dc91c913e45e5f8
Contents?: true
Size: 944 Bytes
Versions: 9
Compression:
Stored size: 944 Bytes
Contents
require_dependency "renalware/letters/letter" module Renalware module Letters class Letter::PendingReview < Letter def self.policy_class PendingReviewLetterPolicy end def revise(params) params = LetterParamsProcessor.new(patient).call(params) self.attributes = params end def reject(by:) becomes!(Draft).tap { |letter| letter.by = by } end def sign(by:) build_signature(user: by, signed_at: Time.current) self.approved_by = by self.approved_at = Time.current self.by = by self end def generate_archive(by:, presenter: default_presenter) becomes!(Approved).tap do |letter| letter.by = by letter.build_archive(by: by, content: presenter.content) end end private def default_presenter LetterPresenterFactory.new(self) end end end end
Version data entries
9 entries across 9 versions & 1 rubygems