Skip to content

Commit

Permalink
OK-420 Add rough implementation to form siirtotiedostos for kk-hakus
Browse files Browse the repository at this point in the history
  • Loading branch information
msiukola committed May 7, 2024
1 parent 6df4ccc commit 0b5b2b7
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/scala/ScalatraBootstrap.scala
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ class ScalatraBootstrap extends LifeCycle {
registers.ovaraDbRepository,
new SiirtotiedostoClient(config.siirtotiedostoClientConfig),
koosteet.ensikertalainen,
integrations.haut,
config.siirtotiedostoPageSize
)
),
Expand Down
12 changes: 12 additions & 0 deletions src/main/scala/fi/vm/sade/hakurekisteri/ovara/OvaraResource.scala
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,19 @@ class OvaraResource(ovaraService: OvaraService)(implicit val security: Security)
} else {
Forbidden("Ei tarvittavia oikeuksia ovara-siirtotiedoston muodostamiseen")
}
}

get("/muodosta/ensikertalaisuudet/kkhaut") {
if (currentUser.exists(_.isAdmin)) {
val vainAktiiviset: Boolean = params.get("vainAktiiviset").exists(_.toBoolean)
logger.info(
s"Muodostetaan ensikertalaisten siirtotiedosto kk-hauille. Vain aktiiviset: $vainAktiiviset"
)
val result = ovaraService.triggerEnsikertalaiset(vainAktiiviset)
Ok(s"Valmista - $result")
} else {
Forbidden("Ei tarvittavia oikeuksia ovara-siirtotiedoston muodostamiseen")
}
}

override protected implicit def jsonFormats: Formats = HakurekisteriJsonSupport.format
Expand Down
25 changes: 25 additions & 0 deletions src/main/scala/fi/vm/sade/hakurekisteri/ovara/OvaraService.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@ import fi.vm.sade.hakurekisteri.ensikertalainen.{
MenettamisenPeruste
}
import fi.vm.sade.hakurekisteri.integration.ExecutorUtil
import fi.vm.sade.hakurekisteri.integration.haku.{
AllHaut,
GetHautQuery,
Haku,
HakuRequest,
RestHaku,
RestHakuResult
}
import fi.vm.sade.hakurekisteri.integration.kouta.KoutaInternalActorRef
import fi.vm.sade.hakurekisteri.rest.support.HakurekisteriJsonSupport
import fi.vm.sade.utils.slf4j.Logging

Expand All @@ -27,6 +36,7 @@ class OvaraService(
db: OvaraDbRepository,
s3Client: SiirtotiedostoClient,
ensikertalainenActor: ActorRef,
hakuActor: ActorRef,
pageSize: Int
) extends IOvaraService
with Logging {
Expand Down Expand Up @@ -81,6 +91,21 @@ class OvaraService(
menettamisenPeruste: Option[MenettamisenPeruste]
)

//Haetaan hakujen oidit ja synkataan ensikertalaiset näille
def triggerEnsikertalaiset(vainAktiiviset: Boolean) = {
implicit val to: Timeout = Timeout(5.minutes)
val allHaut: Future[AllHaut] =
(hakuActor ? HakuRequest)
.mapTo[AllHaut] //fixme, tää on ongelma koska palautuu 0 hakua jos kaikkia hakuja ei oo vielä haettu actorin päässä.
val hakuResult = Await.result(allHaut, 5.minutes)
val kiinnostavat =
hakuResult.haut.filter(haku => (!vainAktiiviset || haku.isActive) && haku.kkHaku).map(_.oid)
logger.info(
s"Löydettiin ${kiinnostavat.size} kiinnostavaa hakua yhteensä ${hakuResult.haut.size} hausta. Vain aktiiviset: $vainAktiiviset"
)
formEnsikertalainenSiirtotiedostoForHakus(kiinnostavat)
}

//Ensivaiheessa ajetaan tämä kaikille kk-hauille kerran, myöhemmin riittää synkata kerran päivässä aktiivisten kk-hakujen tiedot
def formEnsikertalainenSiirtotiedostoForHakus(hakuOids: Seq[String]) = {
def formSiirtotiedostoForHaku(hakuOid: String) = {
Expand Down

0 comments on commit 0b5b2b7

Please sign in to comment.