@@ -10,9 +10,10 @@ import akka.stream.{ ActorMaterializer, IOResult }
10
10
import akka .stream .scaladsl .{ FileIO , Sink , Source }
11
11
import akka .util .{ ByteString , Timeout }
12
12
import hmda .api .util .FlowUtils
13
- import hmda .model .fi .{ Created , Submission }
14
- import hmda .persistence .HmdaSupervisor .{ FindHmdaFiling , FindProcessingActor , FindSubmissions }
15
- import hmda .persistence .institutions .SubmissionPersistence
13
+ import hmda .model .fi .{ Created , Filing , Submission }
14
+ import hmda .persistence .HmdaSupervisor .{ FindFilings , FindHmdaFiling , FindProcessingActor , FindSubmissions }
15
+ import hmda .persistence .institutions .FilingPersistence .CreateFiling
16
+ import hmda .persistence .institutions .{ FilingPersistence , SubmissionPersistence }
16
17
import hmda .persistence .institutions .SubmissionPersistence .CreateSubmission
17
18
import hmda .persistence .processing .HmdaRawFile .AddLine
18
19
import hmda .persistence .processing .ProcessingMessages .{ CompleteUpload , Persisted , StartUpload }
@@ -92,10 +93,17 @@ object HmdaLarLoader extends FlowUtils {
92
93
93
94
fUploadSubmission.onComplete {
94
95
case Success ((submission, true )) =>
95
- val message = FindProcessingActor (SubmissionManager .name, submission.id)
96
- val fProcessingActor = (clusterClient ? ClusterClient .Send (" /user/supervisor/singleton" , message, localAffinity = true )).mapTo[ActorRef ]
97
- fProcessingActor.onComplete { processingActor =>
98
- uploadData(processingActor.getOrElse(ActorRef .noSender), uploadTimestamp, fileName, submission, source)
96
+ val findSubmissionManager = FindProcessingActor (SubmissionManager .name, submission.id)
97
+ val findFilingPersistence = FindFilings (FilingPersistence .name, institutionId)
98
+ val fProcessingActor = (clusterClient ? ClusterClient .Send (" /user/supervisor/singleton" , findSubmissionManager, localAffinity = true )).mapTo[ActorRef ]
99
+ val fFilingPersistence = (clusterClient ? ClusterClient .Send (" /user/supervisor/singleton" , findFilingPersistence, localAffinity = true )).mapTo[ActorRef ]
100
+
101
+ for {
102
+ f <- fFilingPersistence
103
+ p <- fProcessingActor
104
+ _ <- (f ? CreateFiling (Filing (period, institutionId))).mapTo[Option [Filing ]]
105
+ } yield {
106
+ uploadData(p, uploadTimestamp, fileName, submission, source)
99
107
}
100
108
101
109
case Success ((_, false )) =>
0 commit comments