Skip to content

Instantly share code, notes, and snippets.

@fahrradflucht
Last active July 7, 2016 13:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fahrradflucht/98f2101c35f4677fc059 to your computer and use it in GitHub Desktop.
Save fahrradflucht/98f2101c35f4677fc059 to your computer and use it in GitHub Desktop.
class Contact < ApplicationRecord
before_save :update_status_notifications
#...
def update_status_notifications
# Clear notifications
unless status_notification_ids.empty?
status_notification_ids.each do |id|
UserMailer.dequeue_status_notification(id)
end
status_notification_ids = []
end
# Queue notifications
queue_status_notifications if last_meeting
end
def queue_status_notifications
status_middle_date = last_meeting + ideal_contact_frequency
if status_middle_date > Date.today
job = UserMailer.queue_status_middle_notification(self, wait_until: status_middle_date.to_time)
status_notification_ids << job.provider_job_id
end
status_bad_date = last_meeting + minimum_contact_frequency
if status_bad_date > Date.today
job = UserMailer.queue_status_bad_notification(self, wait_until: status_bad_date.to_time)
status_notification_ids << job.provider_job_id
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment