class Decidim::Meetings::UpcomingMeetingNotificationJob
def self.generate_checksum(meeting)
def self.generate_checksum(meeting) Digest::MD5.hexdigest("#{meeting.id}-#{meeting.start_time}") end
def perform(meeting_id, checksum)
def perform(meeting_id, checksum) meeting = Decidim::Meetings::Meeting.find(meeting_id) return if meeting.hidden? || meeting.withdrawn? return unless verify_checksum(meeting, checksum) send_notification(meeting) end
def send_notification(meeting)
def send_notification(meeting) Decidim::EventsManager.publish( event: "decidim.events.meetings.upcoming_meeting", event_class: Decidim::Meetings::UpcomingMeetingEvent, resource: meeting, followers: meeting.followers ) end
def verify_checksum(meeting, checksum)
def verify_checksum(meeting, checksum) self.class.generate_checksum(meeting) == checksum end