Skip to content

Commit bb2e815

Browse files
author
Nick Grippin
committed
checkpoint - need email addresses
1 parent 7d91fb4 commit bb2e815

File tree

4 files changed

+45
-2
lines changed

4 files changed

+45
-2
lines changed

api/src/main/scala/hmda/api/http/institutions/submissions/SubmissionSignPaths.scala

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,27 @@ import hmda.api.http.{ HmdaCustomDirectives, ValidationErrorConverter }
1414
import hmda.api.model._
1515
import hmda.api.protocol.processing.{ ApiErrorProtocol, EditResultsProtocol, InstitutionProtocol, SubmissionProtocol }
1616
import hmda.model.fi.{ Submission, SubmissionId }
17+
import hmda.model.institution.Institution
1718
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 }
1921
import hmda.persistence.institutions.SubmissionPersistence.GetSubmissionById
22+
import hmda.persistence.model.HmdaSupervisorActor.FindActorByName
2023
import hmda.persistence.processing.SubmissionManager
2124
import spray.json.{ JsBoolean, JsFalse, JsObject, JsTrue }
2225

2326
import scala.util.{ Failure, Success }
2427
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+
*/
2538

2639
trait SubmissionSignPaths
2740
extends InstitutionProtocol
@@ -85,8 +98,36 @@ trait SubmissionSignPaths
8598

8699
onComplete(fSubmission) {
87100
case Success(sub) =>
101+
emailSignature(supervisor, sub)
88102
complete(ToResponseMarshallable(Receipt(sub.end, sub.receipt, sub.status)))
89103
case Failure(error) => completeWithInternalError(uri, error)
90104
}
91105
}
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+
}
92133
}

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ lazy val api = (project in file("api"))
211211
oldStrategy(x)
212212
},
213213
parallelExecution in Test := false,
214-
libraryDependencies ++= httpDeps
214+
libraryDependencies ++= httpDeps ++ Seq(javaMail)
215215
)
216216
)
217217
.dependsOn(persistenceModel % "compile->compile;test->test")

project/Dependencies.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@ object Dependencies {
4040
val cassandraUnit = "org.cassandraunit" % "cassandra-unit" % Version.cassandraUnit
4141
val alpakkaCassandra = "com.lightbend.akka" %% "akka-stream-alpakka-cassandra" % Version.alpakka
4242
val cassandraDriver = "com.datastax.cassandra" % "cassandra-driver-core" % Version.cassandraDriver
43+
val javaMail = "javax.mail" % "mail" % Version.javaMail
4344
}

project/Version.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ object Version {
2222
val cassandraUnit = "3.1.3.2"
2323
val alpakka = "0.9"
2424
val cassandraDriver = "3.2.0"
25+
val javaMail = "1.4.7"
2526
}

0 commit comments

Comments
 (0)