From 900422a4e04f1e2a65a064daefba99141062bdd1 Mon Sep 17 00:00:00 2001 From: "Markus A. R. Johansen" <90006516+J0hans1@users.noreply.github.com> Date: Fri, 11 Aug 2023 09:53:09 +0200 Subject: [PATCH 1/2] Slett feilmeldinger (#34) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ Backend støtter mulighet for å slette innmeldte feilmeldinger * ✨ Knapp i redigeringsverktøy for sletting av feil * 🐛 Fikset routing bug, Delete was not allowed, og feil endepunkt i frontend * ♿️ Refresher mainpage ved sletting av feil --------- Co-authored-by: Amalie Mansåker Co-authored-by: Sindre Kjelsrud --- .../helse/sprik/db/FeilmeldingRepository.kt | 4 +++ .../no/nav/helse/sprik/plugins/Routing.kt | 7 +++++ .../no/nav/helse/sprik/FeilmeldingTest.kt | 8 ++++++ .../src/components/RedigeringsVerktoy.tsx | 28 ++++++++++++++++++- 4 files changed, 46 insertions(+), 1 deletion(-) 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 0c4a47a..2a112da 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 @@ -71,4 +71,8 @@ class FeilmeldingRepository { it[FeilmeldingTable.kommentar] = kommentar } } + + fun slettFeilmelding(id: Int) = transaction { + FeilmeldingTable.deleteWhere { FeilmeldingTable.id eq id } + } } 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 a269af0..073dad3 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 @@ -28,6 +28,7 @@ fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngin allowMethod(HttpMethod.Get) allowMethod(HttpMethod.Post) allowMethod(HttpMethod.Put) + allowMethod(HttpMethod.Delete) allowNonSimpleContentTypes = true } install(ContentNegotiation) { @@ -73,6 +74,12 @@ fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngin feilmeldingRepository.oppdaterKommentar(innkommendeKommentar.id, innkommendeKommentar.kommentar) call.respond(status = HttpStatusCode.Created, message = "Feilmelding oppdatert") } + delete("api/slettfeilmelding/{id}") { + val id = call.parameters["id"] + checkNotNull(id) {"Id kan ikke være null"} + feilmeldingRepository.slettFeilmelding(id.toInt()) + call.respond(status = HttpStatusCode.Created, message = "Feilmelding slettet") + } } } 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 9325537..7cb0873 100644 --- a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt +++ b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt @@ -188,4 +188,12 @@ class FeilmeldingTest { val oppdatertKommentar = transaction { FeilmeldingTable.selectAll().single()[FeilmeldingTable.kommentar] } assertEquals("Oppdatert kommentar", oppdatertKommentar) } + + @Test + fun `Feilmelding slettes basert på id`() { + feilmeldingRepository.lagre(feilmelding) + feilmeldingRepository.slettFeilmelding(getId()) + val resultat = transaction { FeilmeldingTable.selectAll().map { it }.size } + assertEquals(0, resultat) + } } \ No newline at end of file diff --git a/frontend/src/components/RedigeringsVerktoy.tsx b/frontend/src/components/RedigeringsVerktoy.tsx index 8a99fa0..d793a7c 100644 --- a/frontend/src/components/RedigeringsVerktoy.tsx +++ b/frontend/src/components/RedigeringsVerktoy.tsx @@ -1,4 +1,4 @@ -import { FloppydiskIcon, XMarkIcon } from "@navikt/aksel-icons" +import { FloppydiskIcon, TrashIcon, XMarkIcon } from "@navikt/aksel-icons" import { TextField, Textarea, RadioGroup, Radio, Button, Switch, Heading } from "@navikt/ds-react" import { useState } from "react" import { FeilmeldingsInnholdInterface } from "../interface" @@ -102,8 +102,34 @@ const RedigeringsVerktoy = (props: redigeringsInterface) => { > Avbryt + ) } export default RedigeringsVerktoy; + + + + +const SlettFeilKnapp = (props: { + id : number + reset: () => void + setVisModal: (visModal: boolean) => void +}) => { + const SlettFeil = async () => { + await axios.delete(`/api/slettfeilmelding/${props.id}`) + props.reset() + props.setVisModal(false) + } + + return( + + ) +} \ No newline at end of file From 5c1a7d173b3e1d1b5bf71d020ff7b622a393a588 Mon Sep 17 00:00:00 2001 From: "Markus A. R. Johansen" <90006516+J0hans1@users.noreply.github.com> Date: Fri, 11 Aug 2023 09:55:18 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9C=A8=20Redigering=20av=20kommentarer?= =?UTF-8?q?=20(#36)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sindre Kjelsrud --- .../src/components/FeilmeldingsInnhold.tsx | 27 ++++++----- frontend/src/components/Kommentar.tsx | 46 +++++++++++++------ 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/frontend/src/components/FeilmeldingsInnhold.tsx b/frontend/src/components/FeilmeldingsInnhold.tsx index 989300e..645d3f9 100644 --- a/frontend/src/components/FeilmeldingsInnhold.tsx +++ b/frontend/src/components/FeilmeldingsInnhold.tsx @@ -40,6 +40,11 @@ const FeilmeldingsInnhold = (props: FeilmeldingsInnholdInterface) => { props.reset() } + const fullUpdate = async() => { + setKommentar(kommentarfelt) + oppdaterkommentar() + } + return( <>
@@ -73,20 +78,14 @@ const FeilmeldingsInnhold = (props: FeilmeldingsInnholdInterface) => {
{props.children} - {kommentar.length === 0 ? - { - setKommentar(kommentarfelt) - oppdaterkommentar()} - } - /> - : - - } + + + ) } diff --git a/frontend/src/components/Kommentar.tsx b/frontend/src/components/Kommentar.tsx index dec8089..8328c14 100644 --- a/frontend/src/components/Kommentar.tsx +++ b/frontend/src/components/Kommentar.tsx @@ -1,21 +1,20 @@ -import { ChatElipsisIcon } from "@navikt/aksel-icons" +import { ChatElipsisIcon, PencilIcon } from "@navikt/aksel-icons" import { TextField, Button, Heading } from "@navikt/ds-react" import Skillelinje from "./Skillelinje" +import { useState } from "react" -interface kommentarTekstfeltInterface { +interface kommentarInterface { kommentarfelt: string, setKommentarfelt: (val: string) => void oppdaterKommentar: () => void -} -interface kommentarInterface { tekst: string } /** * Kommentartekstfeltet er et tekstfelt med en knapp som poster en kommentar til en feil. */ -export const KommentarTekstfelt = (props: kommentarTekstfeltInterface) => { - return( +export const KommentarTekstfelt = (props: kommentarInterface) => { + return (
{ +
+

{props.tekst}

+ + } ) } \ No newline at end of file