diff --git a/app/controllers/submitters_send_email_controller.rb b/app/controllers/submitters_send_email_controller.rb index 0e6c5d3b..9b6f16bc 100644 --- a/app/controllers/submitters_send_email_controller.rb +++ b/app/controllers/submitters_send_email_controller.rb @@ -11,7 +11,11 @@ class SubmittersSendEmailController < ApplicationController alert: 'Email has been sent already.') end - SubmitterMailer.invitation_email(@submitter).deliver_later! + mail = SubmitterMailer.invitation_email(@submitter) + + Submitters::ValidateSending.call(@submitter, mail) + + mail.deliver_later! SubmissionEvent.create!(submitter: @submitter, event_type: 'send_email') diff --git a/app/jobs/send_submitter_invitation_email_job.rb b/app/jobs/send_submitter_invitation_email_job.rb index b57f54db..0a1b5abb 100644 --- a/app/jobs/send_submitter_invitation_email_job.rb +++ b/app/jobs/send_submitter_invitation_email_job.rb @@ -4,7 +4,11 @@ class SendSubmitterInvitationEmailJob < ApplicationJob def perform(params = {}) submitter = Submitter.find(params['submitter_id']) - SubmitterMailer.invitation_email(submitter).deliver_now! + mail = SubmitterMailer.invitation_email(submitter) + + Submitters::ValidateSending.call(submitter, mail) + + mail.deliver_now! SubmissionEvent.create!(submitter:, event_type: 'send_email') diff --git a/lib/submitters/validate_sending.rb b/lib/submitters/validate_sending.rb new file mode 100644 index 00000000..3bf7c200 --- /dev/null +++ b/lib/submitters/validate_sending.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Submitters + module ValidateSending + InvalidEmail = Class.new(StandardError) + + module_function + + def call(submitter, _mail) + raise InvalidEmail unless submitter.email.to_s.include?('@') + + true + end + end +end