Sha256: 6d4a306835198e168b5a9969d467a769dc259c312674c0606ec898a2552eb25a
Contents?: true
Size: 891 Bytes
Versions: 38
Compression:
Stored size: 891 Bytes
Contents
# frozen_string_literal: true module Decidim module Meetings class UpcomingMeetingNotificationJob < ApplicationJob queue_as :events def perform(meeting_id, checksum) meeting = Decidim::Meetings::Meeting.find(meeting_id) send_notification(meeting) if verify_checksum(meeting, checksum) end def self.generate_checksum(meeting) Digest::MD5.hexdigest("#{meeting.id}-#{meeting.start_time}") end private 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) self.class.generate_checksum(meeting) == checksum end end end end
Version data entries
38 entries across 38 versions & 1 rubygems