From de4fa76ff141fc9c881dd69cfd0147c723bfa934 Mon Sep 17 00:00:00 2001
From: Sercan Yesildal <sercan.yesildal@gmail.com>
Date: Mon, 10 Jul 2023 12:28:01 +0200
Subject: [PATCH] crud operations finished

---
 service/planner/db/client.go      | 20 ++++++++++----------
 service/planner/main.go           |  1 +
 service/planner/model/group.go    |  8 ++++----
 service/planner/model/meal.go     | 14 ++++++++++++++
 service/planner/model/shopping.go |  6 ++++++
 service/planner/model/user.go     | 12 ++++++------
 6 files changed, 41 insertions(+), 20 deletions(-)

diff --git a/service/planner/db/client.go b/service/planner/db/client.go
index a58ffc6..bbc2275 100644
--- a/service/planner/db/client.go
+++ b/service/planner/db/client.go
@@ -106,28 +106,28 @@ func GetUser(id int) (*model.User, error) {
 		return nil, errors.New("account not found")
 	}
 
-	queryMeals, err := udb.Query("SELECT userId, mealId, date FROM userMeal WHERE userId = ?;", id)
+	queryMeals, err := udb.Query("SELECT * FROM userMeal WHERE userId = ?;", id)
 	if err != nil {
 		return nil, err
 	}
 	defer queryMeals.Close()
 	for queryMeals.Next() {
-		var meal model.UserMeal
-		err = queryMeals.Scan(&meal.UserID, &meal.MealID, &meal.Date)
+		var meal model.UserMealWithId
+		err = queryMeals.Scan(&meal.ID, &meal.UserID, &meal.MealID, &meal.Date)
 		if err != nil {
 			continue
 		}
 		user.Meals = append(user.Meals, meal)
 	}
 
-	queryShoppingDates, err := udb.Query("SELECT userId, date FROM shoppingDate WHERE userId = ?;", id)
+	queryShoppingDates, err := udb.Query("SELECT * FROM shoppingDate WHERE userId = ?;", id)
 	if err != nil {
 		return nil, err
 	}
 	defer queryShoppingDates.Close()
 	for queryShoppingDates.Next() {
-		var date model.ShoppingDate
-		err = queryMeals.Scan(&date.UserID, &date.Date)
+		var date model.ShoppingDateWithId
+		err = queryShoppingDates.Scan(&date.ID, &date.UserID, &date.Date)
 		if err != nil {
 			continue
 		}
@@ -273,7 +273,7 @@ func GetGroup(id int) (*model.Group, error) {
 	defer query.Close()
 	group := &model.Group{}
 	for query.Next() {
-		err = query.Scan(&group.ID)
+		err = query.Scan(&group.ID, &group.Name)
 		if err != nil {
 			return nil, err
 		}
@@ -283,14 +283,14 @@ func GetGroup(id int) (*model.Group, error) {
 		return nil, errors.New("group not found")
 	}
 
-	queryMeals, err := udb.Query("SELECT groupId, mealId, date FROM groupMeal WHERE groupId = ?;", id)
+	queryMeals, err := udb.Query("SELECT * FROM groupMeal WHERE groupId = ?;", id)
 	if err != nil {
 		return nil, err
 	}
 	defer queryMeals.Close()
 	for queryMeals.Next() {
-		var meal model.GroupMeal
-		err = queryMeals.Scan(&meal.GroupID, &meal.MealID, &meal.Date)
+		var meal model.GroupMealWithId
+		err = queryMeals.Scan(&meal.ID, &meal.GroupID, &meal.MealID, &meal.Date)
 		if err != nil {
 			continue
 		}
diff --git a/service/planner/main.go b/service/planner/main.go
index 3facd58..30f0199 100644
--- a/service/planner/main.go
+++ b/service/planner/main.go
@@ -48,6 +48,7 @@ func main() {
 	router.HandleFunc("/group/meal", handler.CreateGroupMeal).Methods(http.MethodPost)
 	router.HandleFunc("/group/{id}", handler.GetGroup).Methods(http.MethodGet)
 	router.HandleFunc("/group/{id}", handler.DeleteGroup).Methods(http.MethodDelete)
+	router.HandleFunc("/group", handler.GetGroups).Methods(http.MethodGet)
 	router.HandleFunc("/group", handler.CreateGroup).Methods(http.MethodPost)
 	fmt.Printf("Server is listening on port :%v\n", port)
 	if err := http.ListenAndServe(fmt.Sprintf(":%v", port), router); err != nil {
diff --git a/service/planner/model/group.go b/service/planner/model/group.go
index d96c7cc..22402e6 100644
--- a/service/planner/model/group.go
+++ b/service/planner/model/group.go
@@ -1,10 +1,10 @@
 package model
 
 type Group struct {
-	ID      int         `json:"id"`
-	Name    string      `json:"name"`
-	UserIDs []int       `json:"userIds"`
-	Meals   []GroupMeal `json:"meals"`
+	ID      int               `json:"id"`
+	Name    string            `json:"name"`
+	UserIDs []int             `json:"userIds"`
+	Meals   []GroupMealWithId `json:"meals"`
 }
 
 type GroupItem struct {
diff --git a/service/planner/model/meal.go b/service/planner/model/meal.go
index 4f61565..a280c08 100644
--- a/service/planner/model/meal.go
+++ b/service/planner/model/meal.go
@@ -6,8 +6,22 @@ type UserMeal struct {
 	Date   string `json:"date"`
 }
 
+type UserMealWithId struct {
+	ID     int    `json:"id"`
+	UserID int    `json:"userId"`
+	MealID int    `json:"mealId"`
+	Date   string `json:"date"`
+}
+
 type GroupMeal struct {
 	GroupID int    `json:"groupId"`
 	MealID  int    `json:"mealId"`
 	Date    string `json:"date"`
 }
+
+type GroupMealWithId struct {
+	ID      int    `json:"id"`
+	GroupID int    `json:"groupId"`
+	MealID  int    `json:"mealId"`
+	Date    string `json:"date"`
+}
diff --git a/service/planner/model/shopping.go b/service/planner/model/shopping.go
index 23b3aad..892a070 100644
--- a/service/planner/model/shopping.go
+++ b/service/planner/model/shopping.go
@@ -4,3 +4,9 @@ type ShoppingDate struct {
 	UserID int    `json:"userId"`
 	Date   string `json:"date"`
 }
+
+type ShoppingDateWithId struct {
+	ID     int    `json:"id"`
+	UserID int    `json:"userId"`
+	Date   string `json:"date"`
+}
diff --git a/service/planner/model/user.go b/service/planner/model/user.go
index 4acc2cb..86dd23f 100644
--- a/service/planner/model/user.go
+++ b/service/planner/model/user.go
@@ -1,12 +1,12 @@
 package model
 
 type User struct {
-	ID            int            `json:"id"`
-	Mail          string         `json:"mail"`
-	FirstName     string         `json:"firstName"`
-	LastName      string         `json:"lastName"`
-	Meals         []UserMeal     `json:"meals"`
-	ShoppingDates []ShoppingDate `json:"shoppingDates"`
+	ID            int                  `json:"id"`
+	Mail          string               `json:"mail"`
+	FirstName     string               `json:"firstName"`
+	LastName      string               `json:"lastName"`
+	Meals         []UserMealWithId     `json:"meals"`
+	ShoppingDates []ShoppingDateWithId `json:"shoppingDates"`
 }
 
 type UserItem struct {
-- 
GitLab