Files
docuseal/lib/submission_events.rb
T
Pete Matsyburka 7ed27bb413 populate columns
2025-11-21 12:33:43 +02:00

30 lines
852 B
Ruby

# frozen_string_literal: true
module SubmissionEvents
TRACKING_PARAM_LENGTH = 6
module_function
def build_tracking_param(submitter, event_type = 'click_email')
Base64.urlsafe_encode64(
Digest::SHA1.digest([submitter.slug, event_type, Rails.application.secret_key_base].join(':'))
).first(TRACKING_PARAM_LENGTH)
end
def create_with_tracking_data(submitter, event_type, request, data = {})
SubmissionEvent.create!(submitter:, event_type:, data: {
ip: request.remote_ip,
ua: request.user_agent,
sid: request.session.id.to_s,
uid: request.env['warden'].user(:user)&.id,
**data
}.compact_blank)
end
def populate_account_id
Account.find_each do |account|
SubmissionEvent.where(submission_id: account.submissions).in_batches.update_all(account_id: account.id)
end
end
end