diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt index 01e3b1d..9ec1063 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt @@ -6,6 +6,7 @@ import no.nav.helse.sprik.db.FeilmeldingTable.dato import no.nav.helse.sprik.db.FeilmeldingTable.tittel import no.nav.helse.sprik.modell.Feilmelding import org.jetbrains.exposed.sql.* +import org.jetbrains.exposed.sql.SqlExpressionBuilder.like import org.jetbrains.exposed.sql.transactions.transaction import java.time.LocalDateTime @@ -31,4 +32,18 @@ class FeilmeldingRepository { fun hentAlleFeilmeldinger(): List = transaction { FeilmeldingTable.selectAll().map(::radTilFeilmelding) } + + fun hentSokteFeilmeldinger(sokeord: String): List = transaction { + /* val query = FeilmeldingTable.selectAll() + tittel?.let { + query.andWhere { FeilmeldingTable.tittel like sokeord } + } + beskrivelse?.let { + query.andWhere { FeilmeldingTable.beskrivelse like sokeord } + } */ + val sok = "%${sokeord}%" + + FeilmeldingTable.select((FeilmeldingTable.tittel like sok) or (FeilmeldingTable.beskrivelse like sok)).map(::radTilFeilmelding) + + } } diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Sokemotor.kt b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Sokemotor.kt deleted file mode 100644 index dbf7f39..0000000 --- a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Sokemotor.kt +++ /dev/null @@ -1,28 +0,0 @@ -package no.nav.helse.sprik.modell - -import no.nav.helse.sprik.db.FeilmeldingRepository -import java.util.* -import kotlin.collections.ArrayList - -class Sokemotor { - private val feilmeldingRepository = FeilmeldingRepository() - - fun sok(s: String): List { - - val feilmeldinger = feilmeldingRepository.hentAlleFeilmeldinger() - val resultat = ArrayList() - - val processed = s.lowercase() - - for (i in feilmeldinger) { - if (i.tittel.lowercase().contains(processed) or i.beskrivelse.lowercase().contains(processed) or processed.equals("")) { - println(i.toString() + " matcher" + processed) - resultat.add(i) - }else{ - println(i.toString() + " matcher ikke") - } - } - - return resultat.toList() - } -} \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt b/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt index d2d1a96..318d00a 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt @@ -11,11 +11,8 @@ import io.ktor.server.engine.* import io.ktor.server.http.content.* import io.ktor.server.plugins.cors.routing.* import io.ktor.server.request.* -import no.nav.helse.sprik.Test import no.nav.helse.sprik.db.FeilmeldingRepository import no.nav.helse.sprik.modell.Feilmelding -import no.nav.helse.sprik.modell.Sokemotor -import java.time.LocalDateTime fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngineEnvironment { //Repositories for handlinger mot database: @@ -59,9 +56,9 @@ fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngin val testMelding = feilmeldingRepository.hentAlleFeilmeldinger() call.respond(status = HttpStatusCode.Created, message = testMelding) } - post("/api/hentsok"){ + get("/api/hentsok/{sokestreng}"){ val sokestreng = call.receive() - call.respond(status = HttpStatusCode.Created, message = sokestreng + ": " + sokemotor.sok(sokestreng)) + call.respond(status = HttpStatusCode.Created, message = sokestreng) } } } diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt index bf2b583..38e0759 100644 --- a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt +++ b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt @@ -23,10 +23,13 @@ class FeilmeldingTest { private val database = Database(dbconfig()).configureFlyway() private val feilmeldingRepository = FeilmeldingRepository() private val feilmelding = Feilmelding("Test", "Testesen", LocalDateTime.of(2023,1,1,8,0)) + private val feilmelding2 = Feilmelding("Tittel", "Beskrivelse", LocalDateTime.of(2023,2,1,8,0)) @BeforeAll fun setup() { ExposedDatabase.connect(database.dataSource) + feilmeldingRepository.lagre(feilmelding) + } @AfterEach fun wipe() { @@ -36,7 +39,6 @@ class FeilmeldingTest { } @Test fun `Sett opp testdatabasen riktig`(){ - feilmeldingRepository.lagre(feilmelding) transaction { assertEquals(1, FeilmeldingTable.selectAll().map { it @@ -46,7 +48,6 @@ class FeilmeldingTest { @Test fun `Lagrer feilmelding i databasen`() { - feilmeldingRepository.lagre(feilmelding) transaction { val actual = FeilmeldingTable.selectAll().single() assertEquals("Test", actual[FeilmeldingTable.tittel]) @@ -57,14 +58,35 @@ class FeilmeldingTest { @Test fun `Henter alle feilmeldinger i databasen`() { - feilmeldingRepository.lagre(feilmelding) transaction { - val res: List = feilmeldingRepository.hentAlleFeilmeldinger() + val resultat: List = feilmeldingRepository.hentAlleFeilmeldinger() val actual = FeilmeldingTable.selectAll() - assertEquals(actual.map { it }.size, res.size) - assertEquals("Test", res[0].tittel) - assertEquals("Testesen", res[0].beskrivelse) - assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), res[0].dato) + assertEquals(actual.map { it }.size, resultat.size) + assertEquals("Test", resultat[0].tittel) + assertEquals("Testesen", resultat[0].beskrivelse) + assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), resultat[0].dato) } } + + @Test + fun `Henter feilmeldinger som matcher søk`() { + val sokeresultat: List = feilmeldingRepository.hentSokteFeilmeldinger("Test") + assertEquals(1, sokeresultat.size) + assertEquals("Test", sokeresultat[0].tittel) + assertEquals("Testesen", sokeresultat[0].beskrivelse) + } + + @Test + fun `Henter feilmeldinger som har søkestreng som substreng`() { + val sokeresultat: List = feilmeldingRepository.hentSokteFeilmeldinger("Teste") + assertEquals(1, sokeresultat.size) + assertEquals("Test", sokeresultat[0].tittel) + assertEquals("Testesen", sokeresultat[0].beskrivelse) + } + + @Test + fun `Finner ingen feilmeldinger som matcher søk`() { + val sokeresultat: List = feilmeldingRepository.hentSokteFeilmeldinger("abrakadabra") + assertEquals(0, sokeresultat.size) + } } \ No newline at end of file diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/SokTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/SokTest.kt deleted file mode 100644 index f7478cc..0000000 --- a/backend/src/test/kotlin/no/nav/helse/sprik/SokTest.kt +++ /dev/null @@ -1,49 +0,0 @@ -package no.nav.helse.sprik - -import no.nav.helse.sprik.db.Database -import no.nav.helse.sprik.db.FeilmeldingRepository -import no.nav.helse.sprik.modell.Feilmelding -import no.nav.helse.sprik.modell.Sokemotor -import org.junit.jupiter.api.BeforeAll -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.TestInstance -import java.time.LocalDateTime -import kotlin.test.assertEquals -import org.jetbrains.exposed.sql.Database as ExposedDatabase - -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -class SokTest { - private val database = Database(dbconfig()).configureFlyway() - private val sokemotor = Sokemotor() - private val feilmeldingRepository = FeilmeldingRepository() - private val feilmelding = Feilmelding("Test", "Testesen", LocalDateTime.of(2023,1,1,8,0)) - private val feilmelding2 = Feilmelding("Tittel", "Beskrivelse", LocalDateTime.of(2023,2,1,8,0)) - - @BeforeAll - fun setup() { - ExposedDatabase.connect(database.dataSource) - feilmeldingRepository.lagre(feilmelding) - feilmeldingRepository.lagre(feilmelding2) - } - - @Test - fun `Søk etter nøkkelord i titler`() { - val sokeresultat = sokemotor.sok("Test") - assertEquals(1, sokeresultat.size) - assertEquals(sokeresultat[0].tittel, "Test") - } - - @Test - fun `Søk etter nøkkelord i beskrivelser`() { - val sokeresultat = sokemotor.sok("Beskrivelse") - assertEquals(1, sokeresultat.size) - assertEquals(sokeresultat[0].beskrivelse, "Beskrivelse") - } - - /* - @Test - fun `Søk etter kategorier`() { - TODO() - } - */ -} \ No newline at end of file diff --git a/frontend/src/const.ts b/frontend/src/const.ts index 0cc1826..a6688d6 100644 --- a/frontend/src/const.ts +++ b/frontend/src/const.ts @@ -2,5 +2,5 @@ * Konstanter vi bruker i diverse filer i applikasjonen */ -export const backendURL = "http://localhost:8080" -//export const backendURL = "https://helse-sprik.intern.dev.nav.no" \ No newline at end of file +//export const backendURL = "http://localhost:8080" +export const backendURL = "https://helse-sprik.intern.dev.nav.no" \ No newline at end of file