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