Files
fizzy/app/models/notifier.rb
T
2025-04-09 14:50:58 +02:00

41 lines
684 B
Ruby

class Notifier
attr_reader :event
delegate :creator, to: :event
class << self
def for(event)
"Notifier::#{event.action.classify}".safe_constantize&.new(event)
end
end
def generate
if should_notify?
recipients.map do |recipient|
Notification.create! user: recipient, event: event, card: card, resource: resource
end
end
end
private
def initialize(event)
@event = event
end
def should_notify?
!event.creator.system?
end
def recipients
card.watchers_and_subscribers.without(creator)
end
def resource
card
end
def card
event.summary.message.card
end
end