Class: Renalware::Letters::Mailshots::MailshotLetterFactory
- Inherits:
-
Object
- Object
- Renalware::Letters::Mailshots::MailshotLetterFactory
- Defined in:
- app/models/renalware/letters/mailshots/mailshot.rb
Overview
Factory class responsible for creating a mailshot letter by moving it through its ‘state machine’ states until it is approved and ready to print. Doing it this ways ensures all pub/sub events, callbacks etc happen in correctly and in order.
Instance Attribute Summary collapse
-
#letter ⇒ Object
readonly
Returns the value of attribute letter.
Instance Method Summary collapse
Instance Attribute Details
#letter ⇒ Object (readonly)
Returns the value of attribute letter.
85 86 87 |
# File 'app/models/renalware/letters/mailshots/mailshot.rb', line 85 def letter @letter end |
Instance Method Details
#approve ⇒ Object
108 109 110 111 112 113 |
# File 'app/models/renalware/letters/mailshots/mailshot.rb', line 108 def approve ApproveLetter .build(letter) .broadcasting_to_configured_subscribers .call(by: current_user) end |
#create ⇒ Object
87 88 89 90 91 92 |
# File 'app/models/renalware/letters/mailshots/mailshot.rb', line 87 def create draft submit_for_review approve letter end |
#draft ⇒ Object
94 95 96 97 98 99 100 |
# File 'app/models/renalware/letters/mailshots/mailshot.rb', line 94 def draft @letter = LetterFactory .new(patient, letter_attributes) .with_contacts_as_default_ccs .build letter.save_by!(current_user) end |
#submit_for_review ⇒ Object
102 103 104 105 106 |
# File 'app/models/renalware/letters/mailshots/mailshot.rb', line 102 def submit_for_review letter.submit(by: current_user) # now pending review letter.save! @letter = Letters::Letter::PendingReview.find(letter.id) end |