Skip to content

Commit ce40622

Browse files
committed
Remove postgresql code from dependent projects
1 parent 458fb6e commit ce40622

File tree

8 files changed

+20
-152
lines changed

8 files changed

+20
-152
lines changed

api/src/main/scala/hmda/api/http/admin/InstitutionAdminHttpApi.scala

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,9 @@ import hmda.persistence.HmdaSupervisor.FindFilings
1818
import hmda.persistence.institutions.FilingPersistence.CreateFiling
1919
import hmda.persistence.institutions.{ FilingPersistence, InstitutionPersistence }
2020
import hmda.persistence.institutions.InstitutionPersistence.{ CreateInstitution, ModifyInstitution }
21-
import hmda.persistence.messages.CommonMessages.Event
2221
import hmda.persistence.model.HmdaSupervisorActor.FindActorByName
23-
import hmda.query.projections.institutions.InstitutionDBProjection.{ CreateSchema, DeleteSchema }
24-
import hmda.query.view.institutions.InstitutionView
25-
import hmda.query.view.messages.CommonViewMessages.GetProjectionActorRef
2622

2723
import scala.concurrent.ExecutionContext
28-
import scala.util.matching.Regex
2924
import scala.util.{ Failure, Success }
3025

3126
trait InstitutionAdminHttpApi
@@ -85,31 +80,5 @@ trait InstitutionAdminHttpApi
8580
}
8681
}
8782

88-
private val cdRegex = new Regex("create|delete")
89-
90-
def institutionsSchemaPath(querySupervisor: ActorRef) =
91-
path("institutions" / cdRegex) { command =>
92-
extractExecutionContext { executor =>
93-
implicit val ec: ExecutionContext = executor
94-
val fInstitutionsActor = (querySupervisor ? FindActorByName(InstitutionView.name)).mapTo[ActorRef]
95-
val message = command match {
96-
case "create" => CreateSchema
97-
case "delete" => DeleteSchema
98-
}
99-
timedGet { uri =>
100-
val event = for {
101-
instAct <- fInstitutionsActor
102-
dbAct <- (instAct ? GetProjectionActorRef).mapTo[ActorRef]
103-
cd <- (dbAct ? message).mapTo[Event]
104-
} yield cd
105-
106-
onComplete(event) {
107-
case Success(response) => complete(ToResponseMarshallable(StatusCodes.Accepted -> response.toString))
108-
case Failure(error) => completeWithInternalError(uri, error)
109-
}
110-
}
111-
}
112-
}
113-
114-
def institutionAdminRoutes(supervisor: ActorRef, querySupervisor: ActorRef) = encodeResponse { institutionsWritePath(supervisor) ~ institutionsSchemaPath(querySupervisor) }
83+
def institutionAdminRoutes(supervisor: ActorRef, querySupervisor: ActorRef) = encodeResponse { institutionsWritePath(supervisor) }
11584
}

api/src/main/scala/hmda/api/http/institutions/UploadPaths.scala

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import hmda.persistence.processing.ProcessingMessages.{ CompleteUpload, Persiste
2727
import hmda.persistence.processing.SubmissionManager
2828
import hmda.persistence.processing.SubmissionManager.AddFileName
2929
import hmda.query.HmdaQuerySupervisor.FindHmdaFilingView
30-
import hmda.query.projections.filing.HmdaFilingDBProjection.{ CreateSchema, DeleteLars }
3130

3231
import scala.util.{ Failure, Success }
3332

@@ -61,10 +60,6 @@ trait UploadPaths extends InstitutionProtocol with ApiErrorProtocol with Submiss
6160

6261
onComplete(fUploadSubmission) {
6362
case Success((submission, true, processingActor)) =>
64-
//TODO: remove this when removing PostgreSQL from project
65-
val queryProjector = system.actorSelection(s"/user/query-supervisor/HmdaFilingView-$period/queryProjector")
66-
queryProjector ! CreateSchema
67-
queryProjector ! DeleteLars(institutionId)
6863
uploadFile(processingActor, uploadTimestamp, uri.path, submission)
6964
case Success((_, false, _)) =>
7065
val errorResponse = Failed(s"Submission $seqNr not available for upload")

api/src/test/scala/hmda/api/http/admin/InstitutionAdminHttpApiSpec.scala

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,11 @@ import hmda.api.model.{ ModelGenerators, Status }
1010
import org.scalatest.{ BeforeAndAfterAll, MustMatchers, WordSpec }
1111
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
1212
import akka.http.scaladsl.server.MalformedRequestContentRejection
13-
import akka.testkit.TestProbe
1413
import hmda.api.http.BaseHttpApi
1514
import hmda.model.institution.Institution
1615
import hmda.model.institution.InstitutionGenerators._
1716
import hmda.persistence.HmdaSupervisor
1817
import hmda.query.HmdaQuerySupervisor
19-
import hmda.query.projections.institutions.InstitutionDBProjection._
2018
import hmda.validation.ValidationStats
2119

2220
import scala.concurrent.duration._
@@ -39,12 +37,6 @@ class InstitutionAdminHttpApiSpec
3937

4038
val querySupervisor = HmdaQuerySupervisor.createQuerySupervisor(system)
4139

42-
override def beforeAll(): Unit = {
43-
val probe = TestProbe()
44-
val db = createInstitutionDBProjection(system)
45-
probe.send(db, CreateSchema)
46-
}
47-
4840
override def afterAll(): Unit = {
4941
super.afterAll()
5042
system.terminate()
@@ -115,18 +107,6 @@ class InstitutionAdminHttpApiSpec
115107
status mustBe StatusCodes.NotFound
116108
}
117109
}
118-
"delete institution schema" in {
119-
HttpRequest(HttpMethods.GET, uri = "/institutions/delete") ~> institutionAdminRoutes(supervisor, querySupervisor) ~> check {
120-
status mustBe StatusCodes.Accepted
121-
responseAs[String] mustBe "InstitutionSchemaDeleted()"
122-
}
123-
}
124-
"create institution schema" in {
125-
HttpRequest(HttpMethods.GET, uri = "/institutions/create") ~> institutionAdminRoutes(supervisor, querySupervisor) ~> check {
126-
status mustBe StatusCodes.Accepted
127-
responseAs[String] mustBe "InstitutionSchemaCreated()"
128-
}
129-
}
130110
}
131111

132112
private def createRequest(jsonRequest: ByteString, method: HttpMethod): HttpRequest = {

api/src/test/scala/hmda/api/http/institutions/UploadPathsSpec.scala

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,8 @@ import hmda.model.fi._
1111
import hmda.persistence.HmdaSupervisor.FindSubmissions
1212
import hmda.persistence.institutions.SubmissionPersistence
1313
import hmda.persistence.institutions.SubmissionPersistence.UpdateSubmissionStatus
14-
import hmda.query.DbConfiguration._
15-
import hmda.query.model.filing.ModifiedLoanApplicationRegister
16-
import scala.concurrent.{ Await, Future }
1714

1815
class UploadPathsSpec extends InstitutionHttpApiAsyncSpec with SubmissionProtocol with UploadPaths {
19-
import config.profile.api._
2016

2117
val csv = "1|0123456789|9|201301171330|2013|99-9999999|900|MIKES SMALL BANK XXXXXXXXXXX|1234 Main St XXXXXXXXXXXXXXXXXXXXX|Sacramento XXXXXX|CA|99999-9999|MIKES SMALL INC XXXXXXXXXXX|1234 Kearney St XXXXXXXXXXXXXXXXXXXXX|San Francisco XXXXXX|CA|99999-1234|Mrs. Krabappel XXXXXXXXXXX|916-999-9999|999-753-9999|krabappel@gmail.comXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n" +
2218
"2|0123456789|9|ABC|20130117|4|3|2|1|10000|1|5|20130119|06920|06|034|0100.01|4|5|7|4|3|2|1|8|7|6|5|4|1|2|9000|0|9|8|7|01.05|2|4\n" +
@@ -34,30 +30,9 @@ class UploadPathsSpec extends InstitutionHttpApiAsyncSpec with SubmissionProtoco
3430

3531
val id = SubmissionId("0", "2017", 1)
3632

37-
val repository = new LarRepository(config)
38-
val modifiedLarRepository = new ModifiedLarRepository(config)
39-
40-
private def dropAllObjects: Future[Int] = {
41-
val db = repository.config.db
42-
val dropAll = sqlu"""DROP ALL OBJECTS"""
43-
db.run(dropAll)
44-
}
45-
46-
override def beforeAll(): Unit = {
47-
super.beforeAll()
48-
val setup = for {
49-
_ <- dropAllObjects
50-
_ <- repository.createSchema()
51-
c <- modifiedLarRepository.createSchema()
52-
} yield c
53-
Await.result(setup, duration)
54-
}
55-
5633
override def afterAll(): Unit = {
5734
super.afterAll()
58-
dropAllObjects.onComplete {
59-
case _ => system.terminate()
60-
}
35+
system.terminate()
6136
}
6237

6338
"Upload Paths" must {
@@ -78,12 +53,6 @@ class UploadPathsSpec extends InstitutionHttpApiAsyncSpec with SubmissionProtoco
7853
val submission = responseAs[Submission]
7954
submission.status mustBe Uploaded
8055
submission.start must be < System.currentTimeMillis()
81-
Thread.sleep(4000) //Needs to go through validation process
82-
modifiedLarRepository.findByInstitutionId("0").map {
83-
case xs: Seq[ModifiedLoanApplicationRegister] =>
84-
xs.length mustBe 3
85-
xs.head.agencyCode mustBe 8
86-
}
8756
}
8857
}
8958

api/src/test/scala/hmda/api/http/public/PublicHttpApiSpec.scala

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,36 @@
11
package hmda.api.http.public
22

33
import akka.event.{ LoggingAdapter, NoLogging }
4-
import akka.http.scaladsl.model.{ ContentTypes, StatusCodes }
4+
import akka.http.scaladsl.model.StatusCodes
55
import akka.http.scaladsl.testkit.ScalatestRouteTest
66
import akka.util.Timeout
77
import hmda.api.RequestHeaderUtils
88
import hmda.model.fi.lar.LarGenerators
99
import hmda.query.repository.filing.LarConverter._
10-
import hmda.query.DbConfiguration._
11-
1210
import org.scalatest.{ BeforeAndAfterAll, MustMatchers, WordSpec }
11+
1312
import scala.concurrent.duration._
14-
import scala.concurrent.{ Await, Future }
1513

1614
class PublicHttpApiSpec extends WordSpec with MustMatchers with BeforeAndAfterAll
1715
with ScalatestRouteTest with RequestHeaderUtils with PublicHttpApi with LarGenerators {
1816

1917
override val log: LoggingAdapter = NoLogging
2018
implicit val ec = system.dispatcher
21-
val repository = new LarRepository(config)
2219

2320
val duration = 10.seconds
2421
override implicit val timeout = Timeout(duration)
2522

26-
import repository.config.profile.api._
27-
2823
val p = "2017"
2924
val l1 = toLoanApplicationRegisterQuery(sampleLar).copy(period = p, institutionId = "0")
3025
val l2 = toLoanApplicationRegisterQuery(sampleLar).copy(period = p, institutionId = "0")
3126

32-
override def beforeAll(): Unit = {
33-
super.beforeAll()
34-
val setup = for {
35-
a <- dropAllObjects
36-
b <- repository.createSchema()
37-
c <- modifiedLarRepository.createSchema()
38-
d <- repository.insertOrUpdate(l1)
39-
e <- repository.insertOrUpdate(l2)
40-
} yield (d, e)
41-
Await.result(setup, duration)
42-
}
43-
44-
override def afterAll(): Unit = {
45-
super.afterAll()
46-
dropAllObjects
47-
}
48-
49-
private def dropAllObjects: Future[Int] = {
50-
val db = repository.config.db
51-
val dropAll = sqlu"""DROP ALL OBJECTS"""
52-
db.run(dropAll)
53-
}
54-
5527
"Modified LAR Http API" must {
5628
"return list of modified LARs in proper format" in {
5729
Get("/institutions/0/filings/2017/lar") ~> publicHttpRoutes ~> check {
5830
status mustBe StatusCodes.OK
59-
contentType mustBe ContentTypes.`text/csv(UTF-8)`
60-
responseAs[String].split("\n") must have size 2
31+
//TODO: update when modified lar is reimplemented
32+
//contentType mustBe ContentTypes.`text/csv(UTF-8)`
33+
//responseAs[String].split("\n") must have size 2
6134
}
6235
}
6336
}

cluster/src/main/scala/hmda/cluster/HmdaPlatform.scala

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,11 @@ import hmda.publication.HmdaPublication
1919
import hmda.query.{ HmdaProjectionQuery, HmdaQuerySupervisor }
2020
import hmda.query.view.institutions.InstitutionView
2121
import hmda.validation.ValidationStats
22-
import hmda.query.DbConfiguration._
23-
import hmda.query.projections.institutions.InstitutionDBProjection.{ CreateSchema, _ }
2422
import hmda.cluster.HmdaConfig._
2523
import hmda.persistence.demo.DemoData
26-
import hmda.persistence.messages.events.institutions.InstitutionEvents.InstitutionSchemaCreated
2724
import hmda.persistence.messages.CommonMessages._
2825

2926
import scala.concurrent.duration._
30-
import hmda.query.projections.filing.HmdaFilingDBProjection._
31-
import hmda.query.view.messages.CommonViewMessages.GetProjectionActorRef
32-
import hmda.util.FutureRetry.retry
3327

3428
object HmdaPlatform extends App {
3529

@@ -147,19 +141,14 @@ object HmdaPlatform extends App {
147141
if (isDemo) {
148142
implicit val ec = system.dispatcher
149143
cleanup()
150-
implicit val scheduler = system.scheduler
151-
val retries = List(200.millis, 200.millis, 500.millis, 1.seconds, 2.seconds)
152144
log.info("*** LOADING DEMO DATA ***")
153145

154146
val institutionCreatedF = for {
155-
q <- retry((institutionView ? GetProjectionActorRef).mapTo[ActorRef], retries, 10, 300.millis)
156-
s <- (q ? CreateSchema).mapTo[InstitutionSchemaCreated]
157147
i <- (supervisor ? FindActorByName(InstitutionPersistence.name)).mapTo[ActorRef]
158-
} yield (s, i)
148+
} yield i
159149

160150
institutionCreatedF.map {
161-
case (s, i) =>
162-
log.info(s.toString)
151+
case i =>
163152
DemoData.loadDemoData(system, i)
164153
}
165154
}
@@ -172,12 +161,6 @@ object HmdaPlatform extends App {
172161
log.info("CLEANING JOURNAL")
173162
file.listFiles.foreach(f => f.delete())
174163
}
175-
176-
val larRepository = new LarRepository(config)
177-
val institutionRepository = new InstitutionRepository(config)
178-
179-
larRepository.dropSchema()
180-
institutionRepository.dropSchema()
181164
}
182165

183166
}

persistence-model/src/main/scala/hmda/persistence/messages/events/institutions/InstitutionEvents.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import hmda.persistence.messages.CommonMessages._
55

66
object InstitutionEvents {
77
trait InstitutionEvent extends Event
8-
case class InstitutionSchemaCreated() extends InstitutionEvent
9-
case class InstitutionSchemaDeleted() extends InstitutionEvent
108
case class InstitutionCreated(institution: Institution) extends InstitutionEvent
119
case class InstitutionModified(institution: Institution) extends InstitutionEvent
1210
}

query/src/main/resources/application.conf

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,17 @@ hmda {
2424
}
2525
}
2626

27-
db {
28-
driver = "slick.driver.PostgresDriver$"
29-
30-
db {
31-
url = "jdbc:postgresql://192.168.99.100:54321/hmda?user=postgres&password=postgres"
32-
url = ${?JDBC_URL}
33-
driver = org.postgresql.Driver
34-
numThreads = 2
35-
}
36-
}
27+
//TODO: configure database access for Keycloak
28+
//db {
29+
// driver = "slick.driver.PostgresDriver$"
30+
//
31+
// db {
32+
// url = "jdbc:postgresql://192.168.99.100:54321/hmda?user=postgres&password=postgres"
33+
// url = ${?JDBC_URL}
34+
// driver = org.postgresql.Driver
35+
// numThreads = 2
36+
// }
37+
//}
3738

3839
cassandra {
3940
host = "192.168.99.100"

0 commit comments

Comments
 (0)