fix email tracking params

pull/349/head
Pete Matsyburka 1 year ago
parent 14418b93b1
commit 92da790e77

@ -8,7 +8,8 @@ module Api
def create def create
submitter = Submitter.find_by!(slug: params[:submitter_slug]) 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) SubmissionEvents.create_with_tracking_data(submitter, 'click_email', request)
end end

@ -20,9 +20,15 @@ module SubmissionEvents
module_function 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') def build_tracking_param(submitter, event_type = 'click_email')
Base64.urlsafe_encode64( 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) ).first(TRACKING_PARAM_LENGTH)
end end

Loading…
Cancel
Save