Skip to content

Conversation

taraa
Copy link
Member

@taraa taraa commented Oct 8, 2026

Beskrivelse

Denne PR-en legger til støtte for å opprette handlelister og legge til varer i en handleliste via GraphQL.
Hensikten er å få toveis kommunikasjon mellom frontend/backend og databasen, slik at brukeren ikke bare leser produktdata, men også kan lagre egne handlelister og varer i databasen.

Relaterte issues

closes #15

Endringer gjort

  • Lagt til GraphQL-typer for ShoppingList og ShoppingListItem
  • Lagt til mutation for å opprette handleliste
  • Lagt til mutation for å legge til varer i en handleliste
  • Lagt til query for å hente en handleliste
  • Koblet handleliste-funksjonaliteten mot PostgreSQL-databasen
  • Lagt inn støtte for at samme vare kan øke quantity i stedet for å lage duplikat
  • Lagt inn håndtering av ugyldig liste-ID og EAN
  • Testet GraphQL-mutasjoner lokalt mot databasen

Testing

Lage ny handleliste

Vi tester createShoppingList som skal lage en ny handleliste, og sette den i listen av handlelister.
Bruker koden:

curl -X POST http://localhost:3001/ \ 
  -H "Content-Type: application/json" \ 
  -d '{"query":"mutation { createShoppingList(name: \"Test\") { id name status inUse } }"}' 

Og får i output:

{"data":{"createShoppingList":{"id":"1","name":"Test","status":"ACTIVE","inUse":false}}} 

Som betyr at vi har laget ny data med
id=1,
navn=Test,
status=aktiv,
i bruk=false

Sjekke databasen for den nye handlelisten

Så sjekker jeg om dataen er lagret i databasen ved å gå inn i psql med kommandoen:
% psql handlelapp
handlelapp=# SELECT * FROM shopping_lists;
image

Teste å legge til varer i handlelisten

Jeg legger til et produkt av EAN = 7311041013625 til handleliste med ID 1

curl -X POST http://localhost:3001/ \
  -H "Content-Type: application/json" \
  -d '{"query":"mutation { addItemToList(listId: \"1\", ean: \"7311041013625\", quantity: 1) { id name items { ean quantity } } }"}'
image

Så sjekker eg handlelisten

curl -X POST http://localhost:3001/ \
  -H "Content-Type: application/json" \
  -d '{"query":"{ shoppingList(id: \"1\") { id name status inUse items { id ean quantity note checked } } }"}'

Så får eg handlelisten og dens informasjon, som inkluderer det ene produktet jeg har lagt til.

{"data":{"shoppingList":{"id":"1","name":"Test","status":"ACTIVE","inUse":false,"items":[{"id":"1","ean":"7311041013625","quantity":1,"note":null,"checked":false}]}}}

Hva slags type fiks inneholder denne PR

  • Bug fix
  • Ny funksjonalitet
  • Refactor
  • Dokumentasjon
  • Testing

Sjekkliste

  • Testet lokalt
  • Dokumentert endringer
  • Sjekket for feilmeldinger

Skjermbilder

Har lagt inn nødvendige skjermbilder i testing.

@taraa taraa requested a review from a team as a code owner October 8, 2026 11:14
@taraa taraa linked an issue Oct 8, 2026 that may be closed by this pull request
5 tasks
annisaam
annisaam previously approved these changes Oct 8, 2026
Copy link
Member

@annisaam annisaam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bra!

Mutasjonene createShoppingList og addItemToList og queryen shoppingList er på plass, og testene dine viser at data blir lagret i databasen og kan hentes ut igjen.

Fint at du også sjekket med SELECT * FROM shopping_lists.

@annisaam annisaam dismissed their stale review October 8, 2026 18:50

The merge-base changed after approval.

@taraa taraa changed the base branch from main to dev October 8, 2026 21:37
Copy link
Member

@lindeav lindeav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice nå var det jeg kommenterte på forrige pull request fikset! Resolvers for shoppinglist osv er laget

@lindeav lindeav merged commit eaa8b25 into dev Oct 9, 2026
@lindeav lindeav deleted the 15-task-handleliste-opprette-liste-og-legge-til-varer branch October 9, 2026 11:03
Sign in to join this conversation on GitHub.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

task: Handleliste: opprette liste og legge til varer
3 participants