fix email typos
This commit is contained in:
@@ -11,6 +11,7 @@ gem 'cancancan'
|
|||||||
gem 'devise'
|
gem 'devise'
|
||||||
gem 'devise-two-factor'
|
gem 'devise-two-factor'
|
||||||
gem 'dotenv', require: false
|
gem 'dotenv', require: false
|
||||||
|
gem 'email_typo'
|
||||||
gem 'faraday'
|
gem 'faraday'
|
||||||
gem 'google-cloud-storage', require: false
|
gem 'google-cloud-storage', require: false
|
||||||
gem 'hexapdf'
|
gem 'hexapdf'
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ GEM
|
|||||||
rake (>= 12.0.0, < 14.0.0)
|
rake (>= 12.0.0, < 14.0.0)
|
||||||
docile (1.4.0)
|
docile (1.4.0)
|
||||||
dotenv (2.8.1)
|
dotenv (2.8.1)
|
||||||
|
email_typo (0.2.3)
|
||||||
erb_lint (0.4.0)
|
erb_lint (0.4.0)
|
||||||
activesupport
|
activesupport
|
||||||
better_html (>= 2.0.1)
|
better_html (>= 2.0.1)
|
||||||
@@ -574,6 +575,7 @@ DEPENDENCIES
|
|||||||
devise
|
devise
|
||||||
devise-two-factor
|
devise-two-factor
|
||||||
dotenv
|
dotenv
|
||||||
|
email_typo
|
||||||
erb_lint
|
erb_lint
|
||||||
factory_bot_rails
|
factory_bot_rails
|
||||||
faker
|
faker
|
||||||
|
|||||||
@@ -47,7 +47,9 @@ class StartFormController < ApplicationController
|
|||||||
private
|
private
|
||||||
|
|
||||||
def submitter_params
|
def submitter_params
|
||||||
params.require(:submitter).permit(:email)
|
params.require(:submitter).permit(:email).tap do |attrs|
|
||||||
|
attrs[:email] = Submissions.normalize_email(attrs[:email])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_template
|
def load_template
|
||||||
|
|||||||
+1
-1
@@ -47,7 +47,7 @@ class User < ApplicationRecord
|
|||||||
ADMIN_ROLE = 'admin'
|
ADMIN_ROLE = 'admin'
|
||||||
].freeze
|
].freeze
|
||||||
|
|
||||||
EMAIL_REGEXP = /[^@,\s]+@[^@,\s]+/
|
EMAIL_REGEXP = /[^@;,<>\s]+@[^@;,<>\s]+/
|
||||||
|
|
||||||
belongs_to :account
|
belongs_to :account
|
||||||
has_one :access_token, dependent: :destroy
|
has_one :access_token, dependent: :destroy
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<%= f.fields_for resource do |ff| %>
|
<%= f.fields_for resource do |ff| %>
|
||||||
<div class="form-control <%= 'hidden' if (params[:oauth_callback] || params[:sign_up]) && resource.email? %>">
|
<div class="form-control <%= 'hidden' if (params[:oauth_callback] || params[:sign_up]) && resource.email? %>">
|
||||||
<%= ff.label :email, class: 'label' %>
|
<%= ff.label :email, class: 'label' %>
|
||||||
<%= ff.email_field :email, required: true, class: 'base-input' %>
|
<%= ff.email_field :email, value: EmailTypo.call(resource.email), required: true, class: 'base-input' %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= f.fields_for resource.account do |ff| %>
|
<%= f.fields_for resource.account do |ff| %>
|
||||||
|
|||||||
+11
-3
@@ -32,7 +32,7 @@ module Submissions
|
|||||||
|
|
||||||
emails.map do |email|
|
emails.map do |email|
|
||||||
submission = template.submissions.new(created_by_user: user, source:, template_submitters: template.submitters)
|
submission = template.submissions.new(created_by_user: user, source:, template_submitters: template.submitters)
|
||||||
submission.submitters.new(email:,
|
submission.submitters.new(email: normalize_email(email),
|
||||||
uuid: template.submitters.first['uuid'],
|
uuid: template.submitters.first['uuid'],
|
||||||
sent_at: mark_as_sent ? Time.current : nil)
|
sent_at: mark_as_sent ? Time.current : nil)
|
||||||
|
|
||||||
@@ -55,12 +55,13 @@ module Submissions
|
|||||||
next if uuid.blank?
|
next if uuid.blank?
|
||||||
|
|
||||||
is_order_sent = submitters_order == 'random' || index.zero?
|
is_order_sent = submitters_order == 'random' || index.zero?
|
||||||
|
email = normalize_email(submitter_attrs[:email])
|
||||||
|
|
||||||
submission.submitters.new(
|
submission.submitters.new(
|
||||||
email: submitter_attrs[:email],
|
email:,
|
||||||
phone: submitter_attrs[:phone].to_s.gsub(/[^0-9+]/, ''),
|
phone: submitter_attrs[:phone].to_s.gsub(/[^0-9+]/, ''),
|
||||||
name: submitter_attrs[:name],
|
name: submitter_attrs[:name],
|
||||||
sent_at: mark_as_sent && submitter_attrs[:email].present? && is_order_sent ? Time.current : nil,
|
sent_at: mark_as_sent && email.present? && is_order_sent ? Time.current : nil,
|
||||||
values: submitter_attrs[:values] || {},
|
values: submitter_attrs[:values] || {},
|
||||||
uuid:
|
uuid:
|
||||||
)
|
)
|
||||||
@@ -81,4 +82,11 @@ module Submissions
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def normalize_email(email)
|
||||||
|
return if email.blank?
|
||||||
|
return email.downcase if email.to_s.include?(',')
|
||||||
|
|
||||||
|
EmailTypo.call(email.delete_prefix('<'))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user