@@ -14,14 +14,27 @@ import hmda.api.http.{ HmdaCustomDirectives, ValidationErrorConverter }
14
14
import hmda .api .model ._
15
15
import hmda .api .protocol .processing .{ ApiErrorProtocol , EditResultsProtocol , InstitutionProtocol , SubmissionProtocol }
16
16
import hmda .model .fi .{ Submission , SubmissionId }
17
+ import hmda .model .institution .Institution
17
18
import hmda .persistence .HmdaSupervisor .{ FindProcessingActor , FindSubmissions }
18
- import hmda .persistence .institutions .SubmissionPersistence
19
+ import hmda .persistence .institutions .InstitutionPersistence .GetInstitution
20
+ import hmda .persistence .institutions .{ InstitutionPersistence , SubmissionPersistence }
19
21
import hmda .persistence .institutions .SubmissionPersistence .GetSubmissionById
22
+ import hmda .persistence .model .HmdaSupervisorActor .FindActorByName
20
23
import hmda .persistence .processing .SubmissionManager
21
24
import spray .json .{ JsBoolean , JsFalse , JsObject , JsTrue }
22
25
23
26
import scala .util .{ Failure , Success }
24
27
import scala .concurrent .{ ExecutionContext , Future }
28
+ import javax .mail ._
29
+ import javax .mail .internet .{ InternetAddress , MimeMessage }
30
+
31
+ /*
32
+ Questions
33
+ - Which email library to use (Javax)?
34
+ - Which email/port to send from (no-reply)?
35
+ - Send all emails using CC/BCC, or separate (separate)?
36
+ - Strategy of using Institution Persistance to retrieve emails (it's ok)?
37
+ */
25
38
26
39
trait SubmissionSignPaths
27
40
extends InstitutionProtocol
@@ -85,8 +98,36 @@ trait SubmissionSignPaths
85
98
86
99
onComplete(fSubmission) {
87
100
case Success (sub) =>
101
+ emailSignature(supervisor, sub)
88
102
complete(ToResponseMarshallable (Receipt (sub.end, sub.receipt, sub.status)))
89
103
case Failure (error) => completeWithInternalError(uri, error)
90
104
}
91
105
}
106
+
107
+ private def emailSignature (supervisor : ActorRef , submission : Submission )(implicit ec : ExecutionContext ) = {
108
+ /*
109
+ TODO: Get email addresses!!!!
110
+ */
111
+ val address = " PLACEHOLDER"
112
+ sendMail(address, submission)
113
+
114
+ private def sendMail (address : String , submission : Submission ) = {
115
+ val properties = System .getProperties
116
+ properties.put(" mail.smtp.host" , " localhost" )
117
+ val session = Session .getDefaultInstance(properties)
118
+ val message = new MimeMessage (session)
119
+
120
+ val date = submission.end
121
+ val text = s " Congratulations, you've completed filing your HMDA data for filing period ${submission.id.period}. \n " +
122
+ s " We received your filing on: ${submission.end}\n " +
123
+ s " Your receipt is: ${submission.receipt}"
124
+ message.setFrom(new InternetAddress (" test@test.com" ))
125
+ message.setRecipients(Message .RecipientType .TO , address)
126
+ message.setSubject(" HMDA Filing Successful" )
127
+ message.setText(text)
128
+
129
+ log.info(s " Sending message to $address with the message \n $text" )
130
+
131
+ // Transport.send(message)
132
+ }
92
133
}
0 commit comments