From 92da790e7728ab4a66a950b74467229f73b5e94e Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Tue, 11 Jun 2024 16:59:15 +0300 Subject: [PATCH] fix email tracking params --- app/controllers/api/submitter_email_clicks_controller.rb | 3 ++- lib/submission_events.rb | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/submitter_email_clicks_controller.rb b/app/controllers/api/submitter_email_clicks_controller.rb index 87221680..7d6461f8 100644 --- a/app/controllers/api/submitter_email_clicks_controller.rb +++ b/app/controllers/api/submitter_email_clicks_controller.rb @@ -8,7 +8,8 @@ module Api def create submitter = Submitter.find_by!(slug: params[:submitter_slug]) - if params[:t] == SubmissionEvents.build_tracking_param(submitter, 'click_email') + if params[:t] == SubmissionEvents.build_tracking_param(submitter, 'click_email') || + params[:t] == SubmissionEvents.build_tracking_param_legacy(submitter, 'click_email') SubmissionEvents.create_with_tracking_data(submitter, 'click_email', request) end diff --git a/lib/submission_events.rb b/lib/submission_events.rb index e0b9c70b..41addfbf 100644 --- a/lib/submission_events.rb +++ b/lib/submission_events.rb @@ -20,9 +20,15 @@ module SubmissionEvents module_function + def build_tracking_param_legacy(submitter, event_type = 'click_email') + Base64.urlsafe_encode64( + [submitter.slug, event_type].join(':') + ).first(TRACKING_PARAM_LENGTH) + end + def build_tracking_param(submitter, event_type = 'click_email') Base64.urlsafe_encode64( - [submitter.slug, event_type, Rails.application.secret_key_base].join(':') + Digest::SHA1.digest([submitter.slug, event_type, Rails.application.secret_key_base].join(':')) ).first(TRACKING_PARAM_LENGTH) end