Class: Decidim::NotificationGeneratorForRecipient
- Inherits:
-
Object
- Object
- Decidim::NotificationGeneratorForRecipient
- Defined in:
- app/services/decidim/notification_generator_for_recipient.rb
Overview
This class generates a notification based on the given event, for the given resource/recipient couple. It is intended to be used by the ‘Decidim::NotificationGenerator` class, which schedules a job for each recipient of the event, so that we can easily control which jobs fail.
Instance Method Summary collapse
-
#generate ⇒ Object
Generates the notification.
-
#initialize(event, event_class, resource, recipient, user_role, extra) ⇒ NotificationGeneratorForRecipient
constructor
Initializes the class.
Constructor Details
#initialize(event, event_class, resource, recipient, user_role, extra) ⇒ NotificationGeneratorForRecipient
Initializes the class.
event - A String with the name of the event. event_class - The class that wraps the event, in order to decorate it. resource - an instance of a class implementing the ‘Decidim::Resource` concern. recipient - the User that will receive the notification. extra - a Hash with extra information to be included in the notification.
16 17 18 19 20 21 22 23 |
# File 'app/services/decidim/notification_generator_for_recipient.rb', line 16 def initialize(event, event_class, resource, recipient, user_role, extra) # rubocop:disable Metrics/ParameterLists @event = event @event_class = event_class @resource = resource @recipient = recipient @user_role = user_role @extra = extra end |
Instance Method Details
#generate ⇒ Object
Generates the notification. Returns ‘nil` if the resource is not resource or if the resource or the user are not present.
Returns a Decidim::Notification.
29 30 31 32 33 34 35 |
# File 'app/services/decidim/notification_generator_for_recipient.rb', line 29 def generate return unless event_class return unless resource return unless recipient notification if notification.save! end |