Skip to content

Commit 3c99a5d

Browse files
committed
Replace specific D5-1 object with generic D5X
1 parent 215405d commit 3c99a5d

File tree

5 files changed

+9
-158
lines changed

5 files changed

+9
-158
lines changed

publication/src/main/scala/hmda/publication/reports/disclosure/D51.scala

Lines changed: 8 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3,75 +3,25 @@ package hmda.publication.reports.disclosure
33
import akka.NotUsed
44
import akka.stream.scaladsl.Source
55
import hmda.publication.reports._
6-
import hmda.model.publication.reports._
7-
import hmda.publication.reports.util.ReportUtil._
8-
import hmda.publication.reports.util.ReportsMetaDataLookup
96
import hmda.query.model.filing.LoanApplicationRegisterQuery
107

118
import scala.concurrent.Future
129

13-
case class D51(
14-
respondentId: String,
15-
institutionName: String,
16-
year: Int,
17-
msa: MSAReport,
18-
applicantIncomes: List[ApplicantIncome],
19-
total: List[Disposition],
20-
reportDate: String = formattedCurrentDate,
21-
table: String = D51.metaData.reportTable,
22-
description: String = D51.metaData.description
23-
) extends DisclosureReport
24-
2510
object D51 {
26-
val metaData = ReportsMetaDataLookup.values("D51")
27-
val dispositions = metaData.dispositions
2811

29-
// Table filters:
30-
// Loan Type 2,3,4
31-
// Property Type 1,2
32-
// Purpose of Loan 1
12+
def filters(lar: LoanApplicationRegisterQuery): Boolean = {
13+
(lar.loanType == 2 || lar.loanType == 3 || lar.loanType == 4) &&
14+
(lar.propertyType == 1 || lar.propertyType == 2) &&
15+
(lar.purpose == 1)
16+
}
17+
3318
def generate[ec: EC, mat: MAT, as: AS](
3419
larSource: Source[LoanApplicationRegisterQuery, NotUsed],
3520
fipsCode: Int,
3621
respondentId: String,
3722
institutionNameF: Future[String]
38-
): Future[D51] = {
39-
40-
val lars = larSource
41-
.filter(lar => lar.respondentId == respondentId)
42-
.filter(lar => lar.msa != "NA")
43-
.filter(lar => lar.msa.toInt == fipsCode)
44-
.filter { lar =>
45-
(lar.loanType == 2 || lar.loanType == 3 || lar.loanType == 4) &&
46-
(lar.propertyType == 1 || lar.propertyType == 2) &&
47-
(lar.purpose == 1)
48-
}
49-
val larsWithIncome = lars.filter(lar => lar.income != "NA")
50-
51-
val msa = msaReport(fipsCode.toString)
52-
53-
val incomeIntervals = calculateMedianIncomeIntervals(fipsCode)
54-
val applicantIncomesF = applicantIncomesWithBorrowerCharacteristics(larsWithIncome, incomeIntervals, dispositions)
55-
56-
val yearF = calculateYear(larSource)
57-
val totalF = calculateDispositions(lars, dispositions)
58-
59-
for {
60-
institutionName <- institutionNameF
61-
year <- yearF
62-
applicantIncomes <- applicantIncomesF
63-
total <- totalF
64-
} yield {
65-
66-
D51(
67-
respondentId,
68-
institutionName,
69-
year,
70-
msa,
71-
applicantIncomes,
72-
total
73-
)
74-
}
23+
): Future[D5X] = {
7524

25+
D5X.generate("D51", filters, larSource, fipsCode, respondentId, institutionNameF)
7626
}
7727
}

publication/src/main/scala/hmda/publication/reports/disclosure/DisclosureReports.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import akka.util.Timeout
77
import com.typesafe.config.ConfigFactory
88
import hmda.model.institution.Institution
99
import hmda.persistence.model.HmdaSupervisorActor.FindActorByName
10-
import hmda.publication.reports.protocol.disclosure.D51Protocol._
10+
import hmda.publication.reports.protocol.disclosure.D5XProtocol._
1111
import hmda.query.repository.filing.FilingCassandraRepository
1212
import hmda.query.view.institutions.InstitutionView
1313
import hmda.query.view.institutions.InstitutionView.GetInstitutionByRespondentId

publication/src/main/scala/hmda/publication/reports/protocol/disclosure/D51Protocol.scala

Lines changed: 0 additions & 54 deletions
This file was deleted.

publication/src/test/scala/hmda/publication/reports/disclosure/D51ProtocolSpec.scala

Lines changed: 0 additions & 33 deletions
This file was deleted.

publication/src/test/scala/hmda/publication/reports/disclosure/DisclosureReportGenerators.scala

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,4 @@ object DisclosureReportGenerators {
1717
} yield D5X(respId, instName, year, msa, applicantIncomes, total, "D5-X", "description")
1818
}
1919

20-
def d51Gen: Gen[D51] = {
21-
for {
22-
respId <- Gen.alphaStr
23-
instName <- Gen.alphaStr
24-
year = Calendar.getInstance().get(Calendar.YEAR)
25-
reportDate = formatDate(Calendar.getInstance().toInstant)
26-
msa <- msaReportGen
27-
applicantIncomes <- Gen.listOfN(5, applicantIncomeGen)
28-
total <- totalDispositionGen
29-
} yield D51(respId, instName, year, msa, applicantIncomes, total, reportDate)
30-
}
31-
3220
}

0 commit comments

Comments
 (0)