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 466e12b..7298d55 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 @@ -9,6 +9,7 @@ import no.nav.helse.sprik.db.FeilmeldingTable.kommentar 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.eq import org.jetbrains.exposed.sql.SqlExpressionBuilder.like import org.jetbrains.exposed.sql.transactions.transaction diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/modell/InnkommendeKommentar.kt b/backend/src/main/kotlin/no/nav/helse/sprik/modell/InnkommendeKommentar.kt new file mode 100644 index 0000000..69a50d8 --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/modell/InnkommendeKommentar.kt @@ -0,0 +1,4 @@ +import kotlinx.serialization.Serializable + +@Serializable +class InnkommendeKommentar(val id: Int, val kommentar: String) 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 470c93d..2aa6077 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 @@ -1,5 +1,6 @@ package no.nav.helse.sprik.plugins +import InnkommendeKommentar import io.ktor.http.* import io.ktor.server.routing.* import io.ktor.server.response.* @@ -70,6 +71,11 @@ fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngin feilmeldingRepository.oppdaterFeilmelding(oppdatertFeilmelding) call.respond(status = HttpStatusCode.Created, message = "Feilmelding oppdatert") } + put("/api/oppdaterkommentar") { + val innkommendeKommentar = call.receive() + feilmeldingRepository.oppdaterKommentar(innkommendeKommentar.id, innkommendeKommentar.kommentar) + call.respond(status = HttpStatusCode.Created, message = "Feilmelding oppdatert") + } } } diff --git a/backend/src/test/kotlin/LocalApp.kt b/backend/src/test/kotlin/LocalApp.kt index 8c31036..1a31f51 100644 --- a/backend/src/test/kotlin/LocalApp.kt +++ b/backend/src/test/kotlin/LocalApp.kt @@ -28,4 +28,5 @@ private fun oppretteMockData() { feilmeldingRepository.lagre(Feilmelding(null, "Feil B", "Lorem Ipsum", LocalDateTime.of(2023, 4, 1, 8, 0, 0), 1, true, null)) feilmeldingRepository.lagre(Feilmelding(null, "Feil C", "Lorem Ipsum", LocalDateTime.of(2023, 5, 1, 8, 0, 0), 1, true, null)) feilmeldingRepository.lagre(Feilmelding(null, "Feil D", "Lorem Ipsum", LocalDateTime.of(2023, 6, 1, 8, 0, 0), 0, false, null)) + feilmeldingRepository.oppdaterKommentar(1, "Test kommentar") } 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 ef36d8c..3fe1211 100644 --- a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt +++ b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt @@ -124,5 +124,4 @@ class FeilmeldingTest { val actual = transaction { FeilmeldingTable.selectAll().single() } assertEquals("Feilen fikses nĂ¥!", actual[FeilmeldingTable.kommentar]) } - } \ No newline at end of file diff --git a/frontend/src/components/FeilKort.tsx b/frontend/src/components/FeilKort.tsx index ae7ad8c..4059d68 100644 --- a/frontend/src/components/FeilKort.tsx +++ b/frontend/src/components/FeilKort.tsx @@ -44,6 +44,7 @@ const FeilKort = (props: IFeilKort) => { dato={props.dato} haster={props.haster} arbeidsstatus={props.arbeidsstatus} + kommentar={props.kommentar} /> { return( props.setOpen(false)} diff --git a/frontend/src/components/FeilkortHeader.tsx b/frontend/src/components/FeilkortHeader.tsx index de3dd9c..5b70344 100644 --- a/frontend/src/components/FeilkortHeader.tsx +++ b/frontend/src/components/FeilkortHeader.tsx @@ -20,7 +20,8 @@ export const FeilkortHeader = (props: IFeilmelding) => {

{props.dato.toDateString()}

{props.beskrivelse}

- + +

{props.kommentar}

) } diff --git a/frontend/src/components/FeilmeldingsInnhold.tsx b/frontend/src/components/FeilmeldingsInnhold.tsx index d48e7be..8309f1a 100644 --- a/frontend/src/components/FeilmeldingsInnhold.tsx +++ b/frontend/src/components/FeilmeldingsInnhold.tsx @@ -7,15 +7,17 @@ import Skillelinje from "./Skillelinje" import axios from "axios" const FeilmeldingsInnhold = (props: FeilmeldingsInnholdInterface) => { - const [kommentar, setKommentar] = useState("") - const [kommentarfelt, setKommentarfelt] = useState("") + const [kommentar, setKommentar] = useState(props.kommentar ? props.kommentar : "") + const [kommentarfelt, setKommentarfelt] = useState("") const oppdaterkommentar = async() => { - setKommentar(kommentarfelt) + console.log(kommentarfelt) + console.log(kommentar); + const payload = { id: props.id, - tittel: kommentar, + kommentar: kommentarfelt, } await axios.put("/api/oppdaterkommentar", payload, { @@ -66,7 +68,10 @@ const FeilmeldingsInnhold = (props: FeilmeldingsInnholdInterface) => { oppdaterkommentar()} + oppdaterKommentar={() => { + setKommentar(kommentarfelt) + oppdaterkommentar()} + } /> : { tittel={feilMelding.tittel} beskrivelse={feilMelding.beskrivelse} dato={new Date()} - haster={feilMelding.haster} arbeidsstatus={feilMelding.arbeidsstatus} + haster={feilMelding.haster} reset={props.reset} + kommentar={feilMelding.kommentar} /> )) } diff --git a/frontend/src/components/RedigeringsVerktoy.tsx b/frontend/src/components/RedigeringsVerktoy.tsx index f9ca506..d6f43e1 100644 --- a/frontend/src/components/RedigeringsVerktoy.tsx +++ b/frontend/src/components/RedigeringsVerktoy.tsx @@ -25,10 +25,10 @@ const RedigeringsVerktoy = (props: redigeringsInterface) => { beskrivelse: beskrivelse, dato: props.dato.toISOString().replace('Z', ''), arbeidsstatus: arbeidsstatus, - haster: haster + haster: haster, } - await axios.put(`/api/oppdaterfeil/${props.id}`, payload, { + await axios.put(`/api/oppdaterfeil/`, payload, { headers: { 'Content-Type': 'application/json' } diff --git a/frontend/src/interface.ts b/frontend/src/interface.ts index 6b698b4..ef749bd 100644 --- a/frontend/src/interface.ts +++ b/frontend/src/interface.ts @@ -1,4 +1,4 @@ -/* +/** * I denne filen kan vi legge interfaces som skal brukes over flere steder! */ @@ -8,8 +8,9 @@ export interface IFeilmelding { tittel: string, beskrivelse: string dato: Date - haster: boolean arbeidsstatus: number + haster: boolean + kommentar?: string } export interface FeilmeldingsInnholdInterface extends IFeilmelding { @@ -24,8 +25,9 @@ export class Feilmelding implements IFeilmelding { tittel: string = "default tittel" beskrivelse: string = "default beskrivelse" dato: Date = new Date() - haster: boolean = false arbeidsstatus: number = 0 + haster: boolean = false + kommentar?: string = undefined /** * Typescript 2.1 syntax som lar deg sende inn et JSON object og mappe det til class. @@ -37,8 +39,9 @@ export class Feilmelding implements IFeilmelding { tittel: string beskrivelse: string dato: Date - haster: boolean arbeidsstatus: number + haster: boolean + kommentar: string }) { if (fields) Object.assign(this, fields); }