From 65cd2cb6ae199a6baa547b32a86d8a99ad1dcd69 Mon Sep 17 00:00:00 2001 From: Sid <93219711+SindreKjelsrud@users.noreply.github.com> Date: Thu, 3 Aug 2023 12:43:41 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Fiks=20kommentar=20backend=20(#27)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🚧 Påbegynt kommentarhåndtering WIP: Kommentarer vises ikke i frontend Co-authored-by: Amalie Erdal Mansåker * 💄🐛 Bruker switch til å endre om sak haster i redigering BUG: La også til kommentar-field for å unngå BAD_REQUEST på Posting av nye feil * 💄 Gjør små styling forbedringer, forbedret UU ved å lage skillelinjer i forms * ♿️ La til heading på Switch i redigeringsskjema * ✨ Saker som meldes inn kan merkes som haster fra innmelding (#24) Co-authored-by: Sid <93219711+SindreKjelsrud@users.noreply.github.com> * Kommentarer frontend (#26) * 💄 Laget mulighet for å skrive inn og submitte kommentar * 💄 Gjorde kommentar til en "notat-klistrelapp" * 🚑 Frontend bruker oppdaterkommentar endepunktet * 🚧 Påbegynt kommentarhåndtering WIP: Kommentarer vises ikke i frontend Co-authored-by: Amalie Erdal Mansåker * 🔥 Fjerner ubrukte felt Co-authored-by: Sindre Kjelsrud * ✨ Kommentarer til feilmeldinger vises i frontend Vises foreløpig ikke riktig i frontend, men det vises Co-authored-by: Sindre Kjelsrud --------- Co-authored-by: Amalie Erdal Mansåker Co-authored-by: Markus Johansen Co-authored-by: Markus A. R. Johansen <90006516+J0hans1@users.noreply.github.com> --- .../nav/helse/sprik/db/FeilmeldingRepository.kt | 1 + .../helse/sprik/modell/InnkommendeKommentar.kt | 4 ++++ .../kotlin/no/nav/helse/sprik/plugins/Routing.kt | 6 ++++++ backend/src/test/kotlin/LocalApp.kt | 1 + .../kotlin/no/nav/helse/sprik/FeilmeldingTest.kt | 1 - frontend/src/components/FeilKort.tsx | 1 + frontend/src/components/FeilModal.tsx | 2 +- frontend/src/components/FeilkortHeader.tsx | 3 ++- frontend/src/components/FeilmeldingsInnhold.tsx | 15 ++++++++++----- frontend/src/components/KortKonteiner.tsx | 3 ++- frontend/src/components/RedigeringsVerktoy.tsx | 4 ++-- frontend/src/interface.ts | 11 +++++++---- 12 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 backend/src/main/kotlin/no/nav/helse/sprik/modell/InnkommendeKommentar.kt 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); }