From 0fa7558d646992bdb2f379a958cfb2b498049d87 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 18 Mar 2024 23:38:50 +0100 Subject: [PATCH 1/2] Proper logging, all endpoint debug printing replaced with suitable log level --- .../handlers/handlers_project_related.go | 17 +++++------ .../handlers/handlers_report_related.go | 15 +++++----- .../handlers/handlers_user_related.go | 28 ++++++++++--------- backend/main.go | 3 ++ 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/backend/internal/handlers/handlers_project_related.go b/backend/internal/handlers/handlers_project_related.go index 3732249..96f6840 100644 --- a/backend/internal/handlers/handlers_project_related.go +++ b/backend/internal/handlers/handlers_project_related.go @@ -5,6 +5,7 @@ import ( "ttime/internal/types" "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/log" "github.com/golang-jwt/jwt/v5" ) @@ -69,7 +70,7 @@ func (gs *GState) GetProject(c *fiber.Ctx) error { if projectID == "" { return c.Status(400).SendString("No project ID provided") } - println("Getting project with ID: ", projectID) + log.Info("Getting project with ID: ", projectID) // Parse the project ID into an integer projectIDInt, err := strconv.Atoi(projectID) @@ -84,7 +85,7 @@ func (gs *GState) GetProject(c *fiber.Ctx) error { } // Return the project as JSON - println("Returning project: ", project.Name) + log.Info("Returning project: ", project.Name) return c.JSON(project) } @@ -111,7 +112,7 @@ func (gs *GState) AddUserToProjectHandler(c *fiber.Ctx) error { Role string `json:"role"` } if err := c.BodyParser(&requestData); err != nil { - println("Error parsing request body:", err) + log.Info("Error parsing request body:", err) return c.Status(400).SendString("Bad request") } @@ -119,27 +120,27 @@ func (gs *GState) AddUserToProjectHandler(c *fiber.Ctx) error { user := c.Locals("user").(*jwt.Token) claims := user.Claims.(jwt.MapClaims) adminUsername := claims["name"].(string) - println("Admin username from claims:", adminUsername) + log.Info("Admin username from claims:", adminUsername) isAdmin, err := gs.Db.IsSiteAdmin(adminUsername) if err != nil { - println("Error checking admin status:", err) + log.Info("Error checking admin status:", err) return c.Status(500).SendString(err.Error()) } if !isAdmin { - println("User is not a site admin:", adminUsername) + log.Info("User is not a site admin:", adminUsername) return c.Status(403).SendString("User is not a site admin") } // Add the user to the project with the specified role err = gs.Db.AddUserToProject(requestData.Username, requestData.ProjectName, requestData.Role) if err != nil { - println("Error adding user to project:", err) + log.Info("Error adding user to project:", err) return c.Status(500).SendString(err.Error()) } // Return success message - println("User added to project successfully:", requestData.Username) + log.Info("User added to project successfully:", requestData.Username) return c.SendStatus(fiber.StatusOK) } diff --git a/backend/internal/handlers/handlers_report_related.go b/backend/internal/handlers/handlers_report_related.go index 291d068..9219bd9 100644 --- a/backend/internal/handlers/handlers_report_related.go +++ b/backend/internal/handlers/handlers_report_related.go @@ -5,6 +5,7 @@ import ( "ttime/internal/types" "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/log" "github.com/golang-jwt/jwt/v5" ) @@ -37,16 +38,16 @@ func (gs *GState) SubmitWeeklyReport(c *fiber.Ctx) error { // Handler for retrieving weekly report func (gs *GState) GetWeeklyReport(c *fiber.Ctx) error { // Extract the necessary parameters from the request - println("GetWeeklyReport") + log.Info("GetWeeklyReport") user := c.Locals("user").(*jwt.Token) claims := user.Claims.(jwt.MapClaims) username := claims["name"].(string) // Extract project name and week from query parameters projectName := c.Query("projectName") - println(projectName) + log.Info(projectName) week := c.Query("week") - println(week) + log.Info(week) // Convert week to integer weekInt, err := strconv.Atoi(week) @@ -69,7 +70,7 @@ type ReportId struct { } func (gs *GState) SignReport(c *fiber.Ctx) error { - println("Signing report...") + log.Info("Signing report...") // Extract the necessary parameters from the token user := c.Locals("user").(*jwt.Token) claims := user.Claims.(jwt.MapClaims) @@ -81,9 +82,9 @@ func (gs *GState) SignReport(c *fiber.Ctx) error { if err := c.BodyParser(rid); err != nil { return err } - println("Signing report for: ", rid.ReportId) + log.Info("Signing report for: ", rid.ReportId) // reportIDInt, err := strconv.Atoi(rid.ReportId) - // println("Signing report for: ", rid.ReportId) + // log.Info("Signing report for: ", rid.ReportId) // if err != nil { // return c.Status(400).SendString("Invalid report ID") // } @@ -93,7 +94,7 @@ func (gs *GState) SignReport(c *fiber.Ctx) error { if err != nil { return c.Status(500).SendString("Failed to get project manager ID") } - println("blabla", projectManagerID) + log.Info("blabla", projectManagerID) // Call the database function to sign the weekly report err = gs.Db.SignWeeklyReport(rid.ReportId, projectManagerID) diff --git a/backend/internal/handlers/handlers_user_related.go b/backend/internal/handlers/handlers_user_related.go index 0f7c047..24175ee 100644 --- a/backend/internal/handlers/handlers_user_related.go +++ b/backend/internal/handlers/handlers_user_related.go @@ -1,10 +1,11 @@ package handlers import ( - "fmt" "time" "ttime/internal/types" + "github.com/gofiber/fiber/v2/log" + "github.com/gofiber/fiber/v2" "github.com/golang-jwt/jwt/v5" ) @@ -23,16 +24,17 @@ import ( func (gs *GState) Register(c *fiber.Ctx) error { u := new(types.NewUser) if err := c.BodyParser(u); err != nil { - println("Error parsing body") + log.Warn("Error parsing body") return c.Status(400).SendString(err.Error()) } - println("Adding user:", u.Username) + log.Info("Adding user:", u.Username) + log.Info("Adding user:", u.Username) if err := gs.Db.AddUser(u.Username, u.Password); err != nil { return c.Status(500).SendString(err.Error()) } - println("User added:", u.Username) + log.Info("User added:", u.Username) return c.Status(200).SendString("User added") } @@ -61,13 +63,13 @@ func (gs *GState) Login(c *fiber.Ctx) error { // The body type is identical to a NewUser u := new(types.NewUser) if err := c.BodyParser(u); err != nil { - println("Error parsing body") + log.Warn("Error parsing body") return c.Status(400).SendString(err.Error()) } - println("Username:", u.Username) + log.Info("Username:", u.Username) if !gs.Db.CheckUser(u.Username, u.Password) { - println("User not found") + log.Info("User not found") return c.SendStatus(fiber.StatusUnauthorized) } @@ -80,16 +82,16 @@ func (gs *GState) Login(c *fiber.Ctx) error { // Create token token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) - println("Token created for user:", u.Username) + log.Info("Token created for user:", u.Username) // Generate encoded token and send it as response. t, err := token.SignedString([]byte("secret")) if err != nil { - println("Error signing token") + log.Warn("Error signing token") return c.SendStatus(fiber.StatusInternalServerError) } - println("Successfully signed token for user:", u.Username) + log.Info("Successfully signed token for user:", u.Username) return c.JSON(fiber.Map{"token": t}) } @@ -132,15 +134,15 @@ func (gs *GState) PromoteToAdmin(c *fiber.Ctx) error { } username := newUser.Username - println("Promoting user to admin:", username) // Debug print + log.Info("Promoting user to admin:", username) // Debug print // Promote the user to a site admin in the database if err := gs.Db.PromoteToAdmin(username); err != nil { - fmt.Println("Error promoting user to admin:", err) // Debug print + log.Info("Error promoting user to admin:", err) // Debug print return c.Status(500).SendString(err.Error()) } - println("User promoted to admin successfully:", username) // Debug print + log.Info("User promoted to admin successfully:", username) // Debug print // Return a success message return c.SendStatus(fiber.StatusOK) diff --git a/backend/main.go b/backend/main.go index da89043..5517dbe 100644 --- a/backend/main.go +++ b/backend/main.go @@ -10,6 +10,7 @@ import ( "github.com/BurntSushi/toml" "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/logger" "github.com/gofiber/swagger" jwtware "github.com/gofiber/contrib/jwt" @@ -53,6 +54,8 @@ func main() { // Create the server server := fiber.New() + server.Use(logger.New()) + server.Get("/swagger/*", swagger.HandlerDefault) // Mount our static files (Beware of the security implications of this!) From 4c297ab2efc799a56f26b81ea7cc191751666038 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 18 Mar 2024 23:39:02 +0100 Subject: [PATCH 2/2] Old unresolved merge conflict fixed --- testing.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/testing.py b/testing.py index e342598..7a8a52b 100644 --- a/testing.py +++ b/testing.py @@ -22,13 +22,10 @@ loginPath = base_url + "/api/login" addProjectPath = base_url + "/api/project" submitReportPath = base_url + "/api/submitReport" getWeeklyReportPath = base_url + "/api/getWeeklyReport" -<<<<<<< HEAD getProjectPath = base_url + "/api/project" -======= signReportPath = base_url + "/api/signReport" addUserToProjectPath = base_url + "/api/addUserToProject" promoteToAdminPath = base_url + "/api/promoteToAdmin" ->>>>>>> 9ad89d60636ac6091d71b0bf307982becc9b89fe # Posts the username and password to the register endpoint @@ -232,9 +229,6 @@ if __name__ == "__main__": test_add_project() test_submit_report() test_get_weekly_report() -<<<<<<< HEAD test_get_project() -======= test_sign_report() test_add_user_to_project() ->>>>>>> 9ad89d60636ac6091d71b0bf307982becc9b89fe