collect ua and ip on form completion

This commit is contained in:
Alex Turchyn
2023-08-17 10:33:53 +03:00
parent 187b354605
commit e5c5620b20
2 changed files with 10 additions and 5 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ class SubmitFormController < ApplicationController
def update
submitter = Submitter.find_by!(slug: params[:slug])
Submitters::SubmitValues.call(submitter, params)
Submitters::SubmitValues.call(submitter, params, request)
head :ok
end
+9 -4
View File
@@ -4,8 +4,8 @@ module Submitters
module SubmitValues
module_function
def call(submitter, params)
update_submitter!(submitter, params)
def call(submitter, params, request)
update_submitter!(submitter, params, request)
Submissions.update_template_fields!(submitter.submission) if submitter.submission.template_fields.blank?
@@ -26,11 +26,16 @@ module Submitters
submitter
end
def update_submitter!(submitter, params)
def update_submitter!(submitter, params, request)
submitter.values.merge!(normalized_values(params))
submitter.completed_at = Time.current if params[:completed] == 'true'
submitter.opened_at ||= Time.current
if params[:completed] == 'true'
submitter.completed_at = Time.current
submitter.ip = request.remote_ip
submitter.ua = request.user_agent
end
submitter.save!
submitter