💥 Poste innmeldte feil til backend
Co-authored-by: Sindre Kjelsrud <sindre.kjelsrud@nav.no> Co-authored-by: Amalie Mansåker <amalie.erdal.mansaker@nav.no>
This commit is contained in:
parent
e49bce0470
commit
4ad4ce0a75
5 changed files with 59 additions and 21 deletions
13
backend/src/main/kotlin/no/nav/helse/sprik/Feil.kt
Normal file
13
backend/src/main/kotlin/no/nav/helse/sprik/Feil.kt
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
package no.nav.helse.sprik
|
||||||
|
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class Feil(
|
||||||
|
val tittel: String,
|
||||||
|
val beskrivelse: String,
|
||||||
|
) {
|
||||||
|
override fun toString(): String {
|
||||||
|
return "Feil(${tittel}\n${beskrivelse})"
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,6 +8,7 @@ import io.ktor.server.plugins.contentnegotiation.*
|
||||||
import io.ktor.serialization.kotlinx.json.*
|
import io.ktor.serialization.kotlinx.json.*
|
||||||
import io.ktor.server.plugins.cors.routing.*
|
import io.ktor.server.plugins.cors.routing.*
|
||||||
import io.ktor.server.request.*
|
import io.ktor.server.request.*
|
||||||
|
import no.nav.helse.sprik.Feil
|
||||||
import no.nav.helse.sprik.Test
|
import no.nav.helse.sprik.Test
|
||||||
|
|
||||||
fun Application.configureRouting() {
|
fun Application.configureRouting() {
|
||||||
|
@ -26,6 +27,10 @@ fun Application.configureRouting() {
|
||||||
}
|
}
|
||||||
post("/test") {
|
post("/test") {
|
||||||
val test = call.receive<Test>()
|
val test = call.receive<Test>()
|
||||||
|
call.respond(status = HttpStatusCode.Created, message = test)
|
||||||
|
}
|
||||||
|
post("/nyFeil"){
|
||||||
|
val test = call.receive<Feil>()
|
||||||
println(test)
|
println(test)
|
||||||
call.respond(status = HttpStatusCode.Created, message = test)
|
call.respond(status = HttpStatusCode.Created, message = test)
|
||||||
}
|
}
|
||||||
|
|
13
frontend/pages/api/http.ts
Normal file
13
frontend/pages/api/http.ts
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
import axios from "axios";
|
||||||
|
|
||||||
|
export default function post(route: String, data?: Object) {
|
||||||
|
axios.post("http://0.0.0.0:8080/" + route, data, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
}).then((response) => {
|
||||||
|
console.log(response)
|
||||||
|
}).catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
})
|
||||||
|
}
|
|
@ -1,9 +1,31 @@
|
||||||
import "@navikt/ds-css";
|
import "@navikt/ds-css";
|
||||||
|
|
||||||
|
import { ArrowLeftIcon, BugIcon, UploadIcon } from "@navikt/aksel-icons";
|
||||||
import { Button, Heading, TextField, Textarea } from "@navikt/ds-react";
|
import { Button, Heading, TextField, Textarea } from "@navikt/ds-react";
|
||||||
import { BugIcon, UploadIcon, ArrowLeftIcon } from "@navikt/aksel-icons";
|
import post from "./api/http";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
|
const [tittel, setTittel] = useState("");
|
||||||
|
const [beskrivelse, setBeskrivelse] = useState("");
|
||||||
|
|
||||||
|
const handleSubmit = () => {
|
||||||
|
//hent ut data fra felter lagre i var
|
||||||
|
|
||||||
|
console.log("submit");
|
||||||
|
|
||||||
|
const data = {
|
||||||
|
"tittel": tittel,
|
||||||
|
"beskrivelse": beskrivelse
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
|
||||||
|
post("/nyFeil", data)
|
||||||
|
//clear data fra felter
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col justify-center gap-32 p-16">
|
<main className="flex flex-col justify-center gap-32 p-16">
|
||||||
<div className="w-1/2 flex flex-col gap-4 justify-center">
|
<div className="w-1/2 flex flex-col gap-4 justify-center">
|
||||||
|
@ -22,10 +44,12 @@ export default function Home() {
|
||||||
<TextField
|
<TextField
|
||||||
label="Tittel"
|
label="Tittel"
|
||||||
description="En kort oppsummering av problemet"
|
description="En kort oppsummering av problemet"
|
||||||
|
onChange={e => setTittel(e.target.value)}
|
||||||
/>
|
/>
|
||||||
<Textarea
|
<Textarea
|
||||||
label="Beskrivelse"
|
label="Beskrivelse"
|
||||||
description="Detaljert beskrivelse av problemet"
|
description="Detaljert beskrivelse av problemet"
|
||||||
|
onChange={e => setBeskrivelse(e.target.value)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
@ -37,6 +61,7 @@ export default function Home() {
|
||||||
</div>
|
</div>
|
||||||
<div className="w-1/2 flex flex-col gap-2 justify-center">
|
<div className="w-1/2 flex flex-col gap-2 justify-center">
|
||||||
<Button
|
<Button
|
||||||
|
onClick={handleSubmit}
|
||||||
variant="primary"
|
variant="primary"
|
||||||
>
|
>
|
||||||
Meld inn feil
|
Meld inn feil
|
||||||
|
@ -48,7 +73,6 @@ export default function Home() {
|
||||||
Gå tilbake til hovedmenyen
|
Gå tilbake til hovedmenyen
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
)
|
)
|
||||||
}
|
}
|
|
@ -11,23 +11,6 @@ export default function Home() {
|
||||||
const {data, error, isLoading} = useSWR('http://0.0.0.0:8080/', fetcher);
|
const {data, error, isLoading} = useSWR('http://0.0.0.0:8080/', fetcher);
|
||||||
console.log(data);
|
console.log(data);
|
||||||
|
|
||||||
function post() {
|
|
||||||
axios.post("http://0.0.0.0:8080/test", {
|
|
||||||
ord: "heisann hoppsann",
|
|
||||||
tall: 7
|
|
||||||
}, {
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
}).then( (response) => {
|
|
||||||
console.log(response)
|
|
||||||
}).catch( (error) => {
|
|
||||||
console.log(error);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
post()
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex justify-center">
|
<main className="flex justify-center">
|
||||||
<div className="w-1/2 flex flex-col gap-4 justify-center text-center">
|
<div className="w-1/2 flex flex-col gap-4 justify-center text-center">
|
||||||
|
|
Reference in a new issue