From 5e8484192c7339b6f1cae4463e7ea30f57fbdb22 Mon Sep 17 00:00:00 2001 From: Sercan Yesildal <sercan.yesildal@gmail.com> Date: Mon, 10 Jul 2023 23:20:42 +0200 Subject: [PATCH] added docs --- go.work.sum | 9 +++- readme.md | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 readme.md diff --git a/go.work.sum b/go.work.sum index 52a48b3..7582c03 100644 --- a/go.work.sum +++ b/go.work.sum @@ -10,5 +10,12 @@ github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6Ni github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..df0059b --- /dev/null +++ b/readme.md @@ -0,0 +1,143 @@ +# MealPlanner2Go +MealPlanner2Go ist eine Schnittstelle zur Erstellung von Einkaufslisten innerhalb einer Gruppe oder für sich. +Hierzu werden vom Nutzenden Einkaufstage und Mahlzeiten festgelegt und die Applikation erstellt zugeschnittene Einkaufslisten für die jeweiligen Tage. + +## Starten (mit Docker Compose) +### Services bauen und starten +Mit diesen Befehlen werden die Services der Applikation lokal gestartet. +```bash +docker compose build && docker compose up +``` +### Services stoppen und entfernen +Mit diesem Befehl wird der Service entfernt. Volumes bleiben bestehen. +```bash +docker compose down +``` +### Ungenutzte Volumes löschen +Mit diesem Befehl werden alle ungenutzten Volumes entfernt. +```bash +docker volume prune +``` + +## Nutzung der API +### Nutzerfunktionen +Nutzer erstellen +```bash +curl -H "Content-Type: application/json" -d '{"mail":"max.mustermann@gmail.com","firstName":"Max","lastName":"Mustermann"}' localhost:8000/user + +``` +Nutzer abrufen +```bash +curl localhost:8000/user/1 +``` +Nutzerliste abrufen +```bash +curl localhost:8000/user +``` +Nutzer aktualisieren +```bash +curl -X PUT -H "Content-Type: application/json" -d ''{"mail":"max.mustermann@gmail.com","firstName":"Max","lastName":"Mustermann"}' localhost:8000/user/1 +``` +Nutzer entfernen +```bash +curl -X DELETE localhost:8000/user/1 +``` +Einkaufstage hinzufügen +```bash +curl -H "Content-Type: application/json" -d '{"userId":1,"date":"2023-07-12"}' localhost:8000/user/date +``` +Einkaufstage entfernen +```bash +curl -X DELETE localhost:8000/user/date/1 +``` +Gericht hinzufügen +```bash +curl -H "Content-Type: application/json" -d '{"userId":1,"mealId":52992,"date":"2023-07-12"}' localhost:8000/user/meal +``` +Gericht entfernen +```bash +curl -X DELETE localhost:8000/user/meal/1 +``` +Gericht favorisieren +```bash +curl -H "Content-Type: application/json" -d '{}' localhost:8000/user/1/52992 +``` +Gericht entfavorisieren +```bash +curl -X DELETE localhost:8000/user/1/52992 +``` +Einkaufsliste abrufen +```bash +curl localhost:8000/user/list/1 +``` +### Gruppenfunktionen +Gruppe erstellen +```bash +curl -H "Content-Type: application/json" -d '{"name":"Enterprise Development"}' localhost:8000/group + +``` +Gruppe abrufen +```bash +curl localhost:8000/group/1 +``` +Gruppenliste abrufen +```bash +curl localhost:8000/group +``` +Gruppe entfernen +```bash +curl -X DELETE localhost:8000/group/1 +``` +Gericht hinzufügen +```bash +curl -H "Content-Type: application/json" -d '{"groupId":1,"mealId":52992,"date":"2023-07-12"}' localhost:8000/group/meal +``` +Gericht entfernen +```bash +curl -X DELETE localhost:8000/group/meal/1 +``` +Nutzer hinzufügen +```bash +curl -H "Content-Type: application/json" -d '{}' localhost:8000/group/1/1 +``` +Nutzer entfernen +```bash +curl -X DELETE localhost:8000/group/1/1 +``` +### Gerichtfunktionalitäten (interne Kommunikation über gRPC) +Zufälliges Gericht abrufen +```bash +curl localhost:8000/meal/random +``` +Bestimmtes Gericht abrufen +```bash +curl localhost:8000/meal/53043 +``` +Nach Gerichten suchen +```bash +curl localhost:8000/meal/search/eggplant +``` +Kategorien einsehen +```bash +curl localhost:8000/meal/category +``` +Nach Kategorien filtern +```bash +curl localhost:8000/meal/category/beef +``` +Orte einsehen +```bash +curl localhost:8000/meal/area +``` +Nach Orten filtern +```bash +curl localhost:8000/meal/area/american +``` +Zutaten einsehen +```bash +curl localhost:8000/meal/ingredient +``` +Nach Zutaten filtern +```bash +curl localhost:8000/meal/ingredient/chicken +``` \ No newline at end of file -- GitLab