Dette prosjektet er gjennomført som forarbeid til en fagsamtale hos Experis
/create (GET) Oppretter et nytt lotteri
Eksempel
/api/v1/lotteries/create
/current (GET) Returnerer nyeste aktive lotteri
Eksempel
/api/v1/lotteries/current
/add/{lotteryid} (POST) Legger til en liste viner til et lotteri
Eksempel
/api/v1/wines/add/0
JSON body:
[
{
"id": 1,
"name": "Château Margaux 2015",
"price": 300,
"lotteryId": 0
},
{
"id": 2,
"name": "Opus One 2018",
"price": 250,
"lotteryId": 0
},
{
"id": 3,
"name": "Penfolds Grange 2017",
"price": 200,
"lotteryId": 0
},
{
"id": 4,
"name": "Sassicaia 2016",
"price": 150,
"lotteryId": 0
},
{
"id": 5,
"name": "Dom Pérignon 2010",
"price": 100,
"lotteryId": 0
}
]
/{lotteryid} (GET) Returnerer vinlisten for et vilkårelig lotteri
Eksempel
/api/v1/wines/0
/create (POST) Oppretter en ny bruker med gitt navn og telefonnmmer
Eksempel
/api/v1/users/create
JSON request body:
{
"name": "Johannes",
"phone": "+180808080"
}
/{userId}
Returnerer brukeren for en gitt bruker ID
Eksempel
/api/v1/users/0
/reserve/{lotteryid}/{userid} (POST)
Reserverer billetter for gitt lotteri og bruker. Hvilke billetter du vil reservere sendes i request body. Du kan kun reservere billetter som er tilgengelige (dvs. ikke har status som reservert eller kjøpt fra før).
Eksempel
/api/v1/tickets/reserve/0/0
JSON request body:
[
1,
2,
6,
22
]
- Sette opp enhetstester av API endepunktene, f.eks Burp er jeg fan av
- Sette opp enhetstester av kode, funksjoner, klasset etc. Junit er standard
- Deltakere ville benyttet seg av en slack bot for å registrere seg i lotteriet
- Betaling gjennom vipps API på telefonnummer
- Legg inn fuksjonalitet for å automatisk fjerne reserverte tickets hvis betalingen ikke går gjennom, med en timeout callback
- LotteryNotFoundException
- InvalidTicketNumberException
- h2 for enklere applikasjon
- postgres hvis applikasjonen skal ha funksjonalitet til logging av tidligere
Løsningen er ikke ferdig implimentert. Se TODO kommentarer i koden