@@ -28,7 +28,11 @@ import javax.mail._
28
28
import javax .mail .internet .{ InternetAddress , MimeMessage }
29
29
30
30
import com .typesafe .config .ConfigFactory
31
+ import hmda .model .institution .Institution
32
+ import hmda .persistence .model .HmdaSupervisorActor .FindActorByName
31
33
import hmda .query .repository .KeyCloakRepository
34
+ import hmda .query .view .institutions .InstitutionView
35
+ import hmda .query .view .institutions .InstitutionView .{ GetInstitutionById , GetInstitutionByRespondentId }
32
36
33
37
trait SubmissionSignPaths
34
38
extends InstitutionProtocol
@@ -103,15 +107,25 @@ trait SubmissionSignPaths
103
107
104
108
private def emailSignature (supervisor : ActorRef , submission : Submission )(implicit ec : ExecutionContext ) = {
105
109
val emails = findEmailsById(submission.id.institutionId)
106
- emails.map(emailSeq => {
107
- emailSeq.foreach(t => {
108
- val username = t._1 + " " + t._2
109
- sendMail(t._3, username, submission)
110
- })
110
+ val querySupervisor = system.actorSelection(" /user/query-supervisor/singleton" )
111
+ val fInstitutionsActor = (querySupervisor ? FindActorByName (InstitutionView .name)).mapTo[ActorRef ]
112
+ val fName = for {
113
+ a <- fInstitutionsActor
114
+ i <- (a ? GetInstitutionById (submission.id.institutionId)).mapTo[Institution ]
115
+ e <- emails
116
+ } yield (i.respondent.name, e)
117
+
118
+ fName.onComplete({
119
+ case Success ((instName, emailSeq)) =>
120
+ emailSeq.foreach(t => {
121
+ val username = t._1 + " " + t._2
122
+ sendMail(t._3, username, submission, instName)
123
+ })
124
+ case Failure (error) => log.error(error, s " An error has occured retrieving the institution name for ID ${submission.id.institutionId}" )
111
125
})
112
126
}
113
127
114
- private def sendMail (address : String , username : String , submission : Submission ) = {
128
+ private def sendMail (address : String , username : String , submission : Submission , instName : String ) = {
115
129
val config = ConfigFactory .load()
116
130
val host = config.getString(" hmda.mail.host" )
117
131
val port = config.getString(" hmda.mail.port" )
@@ -126,7 +140,7 @@ trait SubmissionSignPaths
126
140
127
141
val date = getFormattedDate
128
142
129
- val text = s " $username, \n\n Congratulations, you've completed filing your HMDA data for filing period ${submission.id.period}. \n " +
143
+ val text = s " $username, \n\n Congratulations, you've completed filing your HMDA data for $instName for filing period ${submission.id.period}. \n " +
130
144
s " We received your filing on: $date\n " +
131
145
s " Your receipt is: ${submission.receipt}"
132
146
message.setFrom(new InternetAddress (senderAddress))
0 commit comments