@@ -11,11 +11,16 @@ class SendSubmissionEmailController < ApplicationController
1111
1212 def create
1313 if params [ :template_slug ]
14- @submitter = Submitter . completed . joins ( submission : :template ) . find_by! ( email : params [ :email ] . to_s . downcase ,
15- template : { slug : params [ :template_slug ] } )
14+ template = Template . find_by! ( slug : params [ :template_slug ] )
15+
16+ @submitter =
17+ Submitter . completed . where ( submission : template . submissions ) . find_by! ( email : params [ :email ] . to_s . downcase )
1618 elsif params [ :submission_slug ]
17- @submitter = Submitter . completed . joins ( :submission ) . find_by ( email : params [ :email ] . to_s . downcase ,
18- submission : { slug : params [ :submission_slug ] } )
19+ submission = Submission . find_by ( slug : params [ :submission_slug ] )
20+
21+ if submission
22+ @submitter = Submitter . completed . find_by ( submission : submission , email : params [ :email ] . to_s . downcase )
23+ end
1924
2025 return redirect_to submissions_preview_completed_path ( params [ :submission_slug ] , status : :error ) unless @submitter
2126 else
@@ -24,14 +29,18 @@ def create
2429
2530 RateLimit . call ( "send-email-#{ @submitter . id } " , limit : 2 , ttl : 5 . minutes )
2631
27- unless EmailEvent . exists? ( tag : :submitter_documents_copy , email : @submitter . email , emailable : @submitter ,
28- event_type : :send , created_at : SEND_DURATION . ago ..Time . current )
29- SubmitterMailer . documents_copy_email ( @submitter , sig : true ) . deliver_later!
30- end
32+ SubmitterMailer . documents_copy_email ( @submitter , sig : true ) . deliver_later! unless already_sent? ( @submitter )
3133
3234 respond_to do |f |
3335 f . html { render :success }
3436 f . json { head :ok }
3537 end
3638 end
39+
40+ private
41+
42+ def already_sent? ( submitter )
43+ EmailEvent . exists? ( tag : :submitter_documents_copy , email : submitter . email , emailable : submitter ,
44+ event_type : :send , created_at : SEND_DURATION . ago ..Time . current )
45+ end
3746end
0 commit comments