## Beskrivelse Backenden har bare en hello-spørring. Klienten trenger spørringer som henter varer og kategorier fra databasen, slik at vi kan vise ekte data. ### Foreslått løsning Bytt ut hello med disse spørringene (bli enige i gruppa før dere starter): ``` graphql type Query { products(search: String, category: ID, limit: Int = 20, offset: Int = 0): [Product!]! product(ean: String!): Product categories: [Category!]! } ``` Product bør ha med navn, EAN, bilde, kategori og priser per butikk. Resolverne spør databasen gjennom pool i backend/src/db.ts. Bruk parametre i SQL ($1, $2) i stedet for å sette sammen strenger, så unngår dere SQL-injeksjon. Hold søket enkelt nå (ILIKE '%tekst%'), siden fullt søk, filtrering og sortering hører til innlevering 3. ### Akseptansekriterier - [ ] hello er fjernet, og skjemaet over (eller det dere ble enige om) finnes i backend. - [ ] npm run build i backend/ går uten TypeScript-feil. - [ ] Med backend kjørende (npm run dev) svarer denne med varer fra databasen (bytt port hvis dere bruker en annen): ```bash curl -s http://localhost:4000/graphql \ -H 'Content-Type: application/json' \ -d '{"query":"{ products(search: \"melk\", limit: 5) { name ean } }"}' { categories { id name } } returnerer kategoriene fra databasen. { product(ean: "<en ekte EAN fra databasen>") { name } } returnerer riktig vare, og en EAN som ikke finnes gir null uten at serveren krasjer. products(limit: 3) gir maks 3 varer. ``` ### Avhengigheter Seed-scriptet (1), så det finnes data å teste mot. Skjemaet kan skrives før det er ferdig.