From cacb26582955d098874f9470088a953ffe897caf Mon Sep 17 00:00:00 2001 From: CactusPuppy Date: Fri, 9 Apr 2021 10:55:46 -0700 Subject: [PATCH] Get destroy job working properly and prevent misfires on updated users --- app/models/user.rb | 8 +++++--- app/services/mailbluster_manager.rb | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index b3ebe306..2f844c4e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -81,9 +81,9 @@ class User < ApplicationRecord after_save :touch_events - # after_create_commit :mailbluster_create_lead + # Note that using after_create_commit and after_update_commit does not work. + # See https://github.com/CactusPuppy/snapcon/pull/43#discussion_r609458034 after_commit :mailbluster_create_lead, on: :create - # after_destroy_commit :mailbluster_delete_lead after_commit :mailbluster_delete_lead, on: :destroy after_commit :mailbluster_update_lead, on: :update, if: ->(user){ ['name', 'email'].any? { |key| user.ts_saved_changes.key? key } } @@ -381,10 +381,12 @@ class User < ApplicationRecord def mailbluster_create_lead MailblusterCreateLeadJob.perform_later self + ts_reset_saved_changes end def mailbluster_delete_lead - MailblusterDeleteLeadJob.perform_later self + MailblusterDeleteLeadJob.perform_later self.email + ts_reset_saved_changes end def mailbluster_update_lead diff --git a/app/services/mailbluster_manager.rb b/app/services/mailbluster_manager.rb index 3925d1dd..d74ea76a 100644 --- a/app/services/mailbluster_manager.rb +++ b/app/services/mailbluster_manager.rb @@ -33,8 +33,8 @@ class MailblusterManager }) end - def self.delete_lead(user) - email_hash = Digest::MD5.hexdigest user.email + def self.delete_lead(email) + email_hash = Digest::MD5.hexdigest email query_api(:delete, "/#{email_hash}") end end