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

Version Path
renalware-core-2.0.8 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.7 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.5 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.4 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.3 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.2 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.1 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.0 app/models/renalware/letters/letter/pending_review.rb
renalware-core-2.0.0.pre.rc13 app/models/renalware/letters/letter/pending_review.rb