From 349d42ed020e9d855e40e8e7ae9f4be0b7337170 Mon Sep 17 00:00:00 2001 From: Sercan Yesildal <sercan.yesildal@gmail.com> Date: Mon, 10 Jul 2023 11:59:14 +0200 Subject: [PATCH] update mariadb client --- docker-compose.yml | 1 + service/planner/db/client.go | 41 ++++++++++++++++++++++++++++++++ service/planner/handler/group.go | 9 +++++++ service/planner/model/group.go | 5 ++++ service/planner/service/group.go | 9 +++++++ 5 files changed, 65 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 886a770..94ae39b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: - "8000:8000" environment: - DB_CONNECT=mariadb:3306 + - LOG_LEVEL=info mariadb: image: mariadb:10.5 volumes: diff --git a/service/planner/db/client.go b/service/planner/db/client.go index 613e86e..a58ffc6 100644 --- a/service/planner/db/client.go +++ b/service/planner/db/client.go @@ -102,6 +102,10 @@ func GetUser(id int) (*model.User, error) { } } + if user.Mail == "" { + return nil, errors.New("account not found") + } + queryMeals, err := udb.Query("SELECT userId, mealId, date FROM userMeal WHERE userId = ?;", id) if err != nil { return nil, err @@ -155,6 +159,10 @@ func GetUsers() ([]*model.UserItem, error) { users = append(users, user) } + if len(users) <= 0 { + return nil, errors.New("no accounts found") + } + return users, nil } @@ -271,6 +279,10 @@ func GetGroup(id int) (*model.Group, error) { } } + if group.Name == "" { + return nil, errors.New("group not found") + } + queryMeals, err := udb.Query("SELECT groupId, mealId, date FROM groupMeal WHERE groupId = ?;", id) if err != nil { return nil, err @@ -302,6 +314,35 @@ func GetGroup(id int) (*model.Group, error) { return group, nil } +func GetGroups() ([]*model.GroupItem, error) { + udb, err := sql.Open(driverName, cfg.FormatDSN()) + if err != nil { + return nil, err + } + defer udb.Close() + + query, err := udb.Query("SELECT * FROM userGroup;") + if err != nil { + return nil, err + } + defer query.Close() + var groups []*model.GroupItem + for query.Next() { + group := &model.GroupItem{} + err = query.Scan(&group.ID, &group.Name) + if err != nil { + continue + } + groups = append(groups, group) + } + + if len(groups) <= 0 { + return nil, errors.New("no groups found") + } + + return groups, nil +} + func DeleteGroup(id int) (*model.Group, error) { udb, err := sql.Open(driverName, cfg.FormatDSN()) if err != nil { diff --git a/service/planner/handler/group.go b/service/planner/handler/group.go index 2e2119b..8ccc943 100644 --- a/service/planner/handler/group.go +++ b/service/planner/handler/group.go @@ -46,6 +46,15 @@ func GetGroup(w http.ResponseWriter, r *http.Request) { sendJson(w, group) } +func GetGroups(w http.ResponseWriter, r *http.Request) { + groups, err := service.GetGroups() + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + sendJson(w, groups) +} + func DeleteGroup(w http.ResponseWriter, r *http.Request) { id, err := getId(r) if err != nil { diff --git a/service/planner/model/group.go b/service/planner/model/group.go index 8069c0d..d96c7cc 100644 --- a/service/planner/model/group.go +++ b/service/planner/model/group.go @@ -6,3 +6,8 @@ type Group struct { UserIDs []int `json:"userIds"` Meals []GroupMeal `json:"meals"` } + +type GroupItem struct { + ID int `json:"id"` + Name string `json:"name"` +} diff --git a/service/planner/service/group.go b/service/planner/service/group.go index 018a819..f84b542 100644 --- a/service/planner/service/group.go +++ b/service/planner/service/group.go @@ -23,6 +23,15 @@ func GetGroup(id int) (*model.Group, error) { return group, nil } +func GetGroups() ([]*model.GroupItem, error) { + groups, err := db.GetGroups() + if err != nil { + return nil, err + } + + return groups, nil +} + func DeleteGroup(id int) (*model.Group, error) { group, err := db.DeleteGroup(id) if err != nil { -- GitLab