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 b77e46b..7f86f11 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 @@ -14,6 +14,7 @@ import io.ktor.server.request.* import no.nav.helse.sprik.Test import no.nav.helse.sprik.db.FeilmeldingRepository import no.nav.helse.sprik.modell.Feilmelding +import java.time.LocalDateTime fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngineEnvironment { //Repositories for handlinger mot database: @@ -57,8 +58,9 @@ fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngin feilmeldingRepository.lagre(feilmelding) call.respond(status = HttpStatusCode.Created, message = "Feilmelding motatt og sendt til database") } - get("/api/hentfeil"){ - call.respond(status = HttpStatusCode.Created, message = "Prøver å hente feil fra DB") + get("/api/hentallefeil"){ + val testMelding = feilmeldingRepository.hentAlleFeilmeldinger() + call.respond(status = HttpStatusCode.Created, message = testMelding) } } } diff --git a/backend/src/test/kotlin/LocalApp.kt b/backend/src/test/kotlin/LocalApp.kt index bfb33f4..6277061 100644 --- a/backend/src/test/kotlin/LocalApp.kt +++ b/backend/src/test/kotlin/LocalApp.kt @@ -1,26 +1,34 @@ import no.nav.helse.sprik.Application import no.nav.helse.sprik.configureFlyway import no.nav.helse.sprik.db.Database -// import no.nav.helse.sprik.db.FeilmeldingRepository +import no.nav.helse.sprik.db.FeilmeldingRepository import no.nav.helse.sprik.dbconfig -// import no.nav.helse.sprik.modell.Feilmelding -// import java.time.LocalDateTime -// import javax.sql.DataSource +import no.nav.helse.sprik.modell.Feilmelding +import java.time.LocalDateTime +import javax.sql.DataSource +import org.jetbrains.exposed.sql.Database as ExposedDatabase + fun main() { val db = Database(dbconfig()).configureFlyway() val app = Application(db) + ExposedDatabase.connect(db.dataSource) - // oppretteMockData(db.dataSource) // WIP + + oppretteMockData(db.dataSource) // WIP app.startBlocking() } -/* WIP private fun oppretteMockData(dataSource: DataSource) { + //må lage connection med database først! val feilmeldingRepository = FeilmeldingRepository() - feilmeldingRepository.lagre(Feilmelding("Tittel Test", "Beskrivelse Test", LocalDateTime.of(2023, 1, 1, 8, 0, 0))) + feilmeldingRepository.lagre(Feilmelding("Tittel Test1", "Beskrivelse Test1", LocalDateTime.of(2023, 1, 1, 8, 0, 0))) + feilmeldingRepository.lagre(Feilmelding("Tittel Test2", "Beskrivelse Test2", LocalDateTime.of(2023, 1, 1, 8, 0, 0))) + feilmeldingRepository.lagre(Feilmelding("Tittel Test3", "Beskrivelse Test3", LocalDateTime.of(2023, 1, 1, 8, 0, 0))) + feilmeldingRepository.lagre(Feilmelding("Tittel Test4", "Beskrivelse Test4", LocalDateTime.of(2023, 1, 1, 8, 0, 0))) + feilmeldingRepository.lagre(Feilmelding("Tittel Test5", "Beskrivelse Test5", LocalDateTime.of(2023, 1, 1, 8, 0, 0))) + feilmeldingRepository.lagre(Feilmelding("Tittel Test6", "Beskrivelse Test6", LocalDateTime.of(2023, 1, 1, 8, 0, 0))) } -*/ \ No newline at end of file diff --git a/frontend/src/components/CardsContainer.tsx b/frontend/src/components/CardsContainer.tsx index d51fe97..c550c66 100644 --- a/frontend/src/components/CardsContainer.tsx +++ b/frontend/src/components/CardsContainer.tsx @@ -1,54 +1,52 @@ +import { data } from "autoprefixer"; import FeilCard from "./FeilCard" import useSWR from "swr" +import { backendURL } from "../const.ts" +import { Feilmelding, IFeilmelding } from "../interface.ts"; /** * * @returns Komponent for returnering av konteiner med alle feilinnmeldingene. */ -const fetcher = (url: RequestInfo | URL) => fetch(url).then(r => r.json()) +// const fetcher = (url: RequestInfo | URL) => fetch(url).then(r => r.json()) -const fetchFeil = () => { - const {data, error, isLoading } = useSWR("/api/hentFeil", fetcher) - if (error) return
failed to load
- if (isLoading) return
loader
- return
hello {data.name}!
+async function fetchAlleFeil() { + // const {data, error, isLoading } = useSWR("/api/hentallefeil", fetcher) + // if (error) return
fail
+ // if (isLoading) return
loader
+ // return
hello {data.data}!
+ try { + const response = await fetch(backendURL + "/api/hentallefeil", { + method: "GET", + headers: { + "Content-Type": "application/json" + }, + }) + .then((data) => data.json()) + .then((feil) => { + return feil.map(jsonFeilmelding => new Feilmelding(jsonFeilmelding)) + }) + .catch((error) => { + console.log(error) + }) + return response + } catch (error) { + console.log("error:", error); + } } + + +const printFeil = async () => { + const a = await fetchAlleFeil(); + console.log("a:", a); +}; + const CardsContainer = () => { - const feilMeldinger: Feilmelding[] = [ - { - tittel: "Mangel på hensyn til tariffoppgjør", - beskrivelse: "Det har vært ett tariffoppgjør og speil sier sykepengene må tilbakekreves, noe som er feil. (sier vi.. har ikke domenekunnskap)", - haster: false, - dato: new Date() - }, - { - tittel: "Speil sier NAV må tilbakekreve sykepenger på feil grunnlag", - beskrivelse: "baluba", - haster: true, - dato: new Date() - }, - { - tittel: "Feil A", - beskrivelse: "Lorem Ipsum", - haster: false, - dato: new Date() - }, - { - tittel: "Feil B", - beskrivelse: "dolor", - haster: false, - dato: new Date() - }, - { - tittel: "Håndkle på hue", - beskrivelse: "Bombastic side eye", - haster: true, - dato: new Date() - } - ] - + const feilMeldinger: Feilmelding[] = [] + printFeil() + return(
@@ -57,14 +55,13 @@ const CardsContainer = () => { key={feilMeldinger.indexOf(feilMelding)} tittel={feilMelding.tittel} beskrivelse={feilMelding.beskrivelse} - haster={feilMelding.haster} + // haster={feilMelding.haster} dato={new Date()} /> ))}

Forsøker å loade feil objekter her:

- {fetchFeil()}
diff --git a/frontend/src/components/FeilCard.tsx b/frontend/src/components/FeilCard.tsx index 6744276..9ed5ed5 100644 --- a/frontend/src/components/FeilCard.tsx +++ b/frontend/src/components/FeilCard.tsx @@ -15,7 +15,7 @@ const TagBar = (props: TagBarInterface) => { ) } -const FeilCard = (props: Feilmelding) => { +const FeilCard = (props: IFeilmelding) => { return ( @@ -23,7 +23,7 @@ const FeilCard = (props: Feilmelding) => { {props.beskrivelse} - + {/* */} Hællæ diff --git a/frontend/src/const.ts b/frontend/src/const.ts new file mode 100644 index 0000000..aeec6f6 --- /dev/null +++ b/frontend/src/const.ts @@ -0,0 +1,3 @@ + +export const backendURL = "http://localhost:8080" +// const backend = "https://helse-sprik.intern.dev.nav.no" diff --git a/frontend/src/interface.ts b/frontend/src/interface.ts index 4fb8190..4edcb50 100644 --- a/frontend/src/interface.ts +++ b/frontend/src/interface.ts @@ -3,9 +3,28 @@ */ -interface Feilmelding { - tittel: String, - beskrivelse: String - haster: boolean +export interface IFeilmelding { + tittel: string, + beskrivelse: string + // haster: boolean dato: Date +} + +export class Feilmelding implements IFeilmelding { + tittel: string = "default tittel" + beskrivelse: string = "default beskrivelse" + dato: Date = new Date() + + /** + * Typescript 2.1 syntax som lar deg sende inn et JSON object og mappe det til class. + * https://stackoverflow.com/questions/14142071/typescript-and-field-initializers + */ + public constructor( + fields: { + tittel: string, + beskrivelse: string, + dato: Date + }) { + if (fields) Object.assign(this, fields); + } } \ No newline at end of file diff --git a/frontend/src/pages/feil.tsx b/frontend/src/pages/feil.tsx index 8e114ef..535f222 100644 --- a/frontend/src/pages/feil.tsx +++ b/frontend/src/pages/feil.tsx @@ -7,21 +7,23 @@ import { useState } from "react"; import BildeOpplastning from "../components/BildeOpplastning"; import Header from "../components/Header"; import { useNavigate } from "react-router-dom"; +import { backendURL } from "../const"; export default function Feil() { const [tittel, setTittel] = useState(""); const [beskrivelse, setBeskrivelse] = useState(""); - const url = "https://helse-sprik.intern.dev.nav.no" - //const url = "http://localhost:5174" - const handleSubmit = () => { - axios.post(url + "/api/nyfeil", - { - tittel: tittel, - beskrivelse: beskrivelse, - dato: new Date().toISOString().replace('Z', '') - }, { + + const payload = { + tittel: tittel, + beskrivelse: beskrivelse, + dato: new Date().toISOString().replace('Z', '') + } + + console.log(payload); + + axios.post(backendURL + "/api/nyfeil", payload, { headers: { 'Content-Type': 'application/json' }