From 1ef4498dadd8cdf7b60f4f256697d9329c9e9deb Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 27 Sep 2023 22:52:19 +0300 Subject: feat: revise logging in other handlers (#55) Former-commit-id: ef5d934328d4389405cd51c08c2738093353a5cd --- backend/handlers/login.go | 8 ++++---- backend/handlers/logs.go | 18 ++++++++++-------- backend/handlers/mod.go | 9 --------- backend/handlers/record.go | 44 +++++++++++++++++--------------------------- backend/handlers/user.go | 4 ++-- 5 files changed, 33 insertions(+), 50 deletions(-) (limited to 'backend') diff --git a/backend/handlers/login.go b/backend/handlers/login.go index b0f5ef6..1a74166 100644 --- a/backend/handlers/login.go +++ b/backend/handlers/login.go @@ -37,7 +37,7 @@ func Login(c *gin.Context) { default: steamID, err := openID.ValidateAndGetID() if err != nil { - CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginFailValidate) + CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginFailValidate, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -48,7 +48,7 @@ func Login(c *gin.Context) { if checkSteamID == 0 { user, err := GetPlayerSummaries(steamID, os.Getenv("API_KEY")) if err != nil { - CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginFailSummary) + CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginFailSummary, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -78,12 +78,12 @@ func Login(c *gin.Context) { // Sign and get the complete encoded token as a string using the secret tokenString, err := token.SignedString([]byte(os.Getenv("SECRET_KEY"))) if err != nil { - CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginFailToken) + CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginFailToken, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse("Failed to generate token.")) return } c.SetCookie("token", tokenString, 3600*24*30, "/", "", true, true) - CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginSuccess) + // CreateLog(steamID, LogTypeUser, LogDescriptionUserLoginSuccess) c.Redirect(http.StatusTemporaryRedirect, "/") // c.JSON(http.StatusOK, models.Response{ // Success: true, diff --git a/backend/handlers/logs.go b/backend/handlers/logs.go index d0561bd..0a0b6be 100644 --- a/backend/handlers/logs.go +++ b/backend/handlers/logs.go @@ -33,14 +33,16 @@ const ( LogDescriptionMapSummaryDeleteSuccess string = "MapSummaryDeleteSuccess" LogDescriptionMapSummaryDeleteFail string = "MapSummaryDeleteFail" - LogDescriptionRecordSuccess string = "Success" - LogDescriptionRecordFailInsertRecord string = "InsertRecordFail" - LogDescriptionRecordFailInsertDemo string = "InsertDemoFail" - LogDescriptionRecordFailProcessDemo string = "ProcessDemoFail" - LogDescriptionRecordFailCreateDemo string = "CreateDemoFail" - LogDescriptionRecordFailOpenDemo string = "OpenDemoFail" - LogDescriptionRecordFailSaveDemo string = "SaveDemoFail" - LogDescriptionRecordFailInvalidRequest string = "InvalidRequestFail" + LogDescriptionCreateRecordSuccess string = "CreateRecordSuccess" + LogDescriptionCreateRecordInsertRecordFail string = "InsertRecordFail" + LogDescriptionCreateRecordInsertDemoFail string = "InsertDemoFail" + LogDescriptionCreateRecordProcessDemoFail string = "ProcessDemoFail" + LogDescriptionCreateRecordCreateDemoFail string = "CreateDemoFail" + LogDescriptionCreateRecordOpenDemoFail string = "OpenDemoFail" + LogDescriptionCreateRecordSaveDemoFail string = "SaveDemoFail" + LogDescriptionCreateRecordInvalidRequestFail string = "InvalidRequestFail" + LogDescriptionDeleteRecordSuccess string = "DeleteRecordSuccess" + LogDescriptionDeleteRecordFail string = "DeleteRecordFail" ) type Log struct { diff --git a/backend/handlers/mod.go b/backend/handlers/mod.go index b8b6f9f..95b37c8 100644 --- a/backend/handlers/mod.go +++ b/backend/handlers/mod.go @@ -62,7 +62,6 @@ func CreateMapSummary(c *gin.Context) { id := c.Param("mapid") mapID, err := strconv.Atoi(id) if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "ATOI: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -75,7 +74,6 @@ func CreateMapSummary(c *gin.Context) { // Start database transaction tx, err := database.DB.Begin() if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "TX#B: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -111,7 +109,6 @@ func CreateMapSummary(c *gin.Context) { return } if err = tx.Commit(); err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "TX#C: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -149,7 +146,6 @@ func EditMapSummary(c *gin.Context) { id := c.Param("mapid") mapID, err := strconv.Atoi(id) if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "ATOI: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -162,7 +158,6 @@ func EditMapSummary(c *gin.Context) { // Start database transaction tx, err := database.DB.Begin() if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "TX#B: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -199,7 +194,6 @@ func EditMapSummary(c *gin.Context) { return } if err = tx.Commit(); err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "TX#C: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -237,7 +231,6 @@ func DeleteMapSummary(c *gin.Context) { id := c.Param("mapid") mapID, err := strconv.Atoi(id) if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "ATOI: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -250,7 +243,6 @@ func DeleteMapSummary(c *gin.Context) { // Start database transaction tx, err := database.DB.Begin() if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "TX#B: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -291,7 +283,6 @@ func DeleteMapSummary(c *gin.Context) { return } if err = tx.Commit(); err != nil { - CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "TX#C: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } diff --git a/backend/handlers/record.go b/backend/handlers/record.go index 4b0fafa..2dbc766 100644 --- a/backend/handlers/record.go +++ b/backend/handlers/record.go @@ -65,7 +65,6 @@ func CreateRecordWithDemo(c *gin.Context) { return } if isDisabled { - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailInvalidRequest) c.JSON(http.StatusOK, models.ErrorResponse("Map is not available for competitive boards.")) return } @@ -75,12 +74,12 @@ func CreateRecordWithDemo(c *gin.Context) { // Get record request var record RecordRequest if err := c.ShouldBind(&record); err != nil { - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailInvalidRequest) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInvalidRequestFail, "BIND: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } if isCoop && (record.PartnerDemo == nil || record.PartnerID == "") { - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailInvalidRequest) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInvalidRequestFail) c.JSON(http.StatusOK, models.ErrorResponse("Invalid entry for coop record submission.")) return } @@ -110,28 +109,28 @@ func CreateRecordWithDemo(c *gin.Context) { // Upload & insert into demos err = c.SaveUploadedFile(header, "backend/parser/"+uuid+".dem") if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailSaveDemo) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordSaveDemoFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } defer os.Remove("backend/parser/" + uuid + ".dem") f, err := os.Open("backend/parser/" + uuid + ".dem") if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailOpenDemo) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordOpenDemoFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } defer f.Close() file, err := createFile(srv, uuid+".dem", "application/octet-stream", f, os.Getenv("GOOGLE_FOLDER_ID")) if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailCreateDemo) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordCreateDemoFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } hostDemoScoreCount, hostDemoScoreTime, err = parser.ProcessDemo("backend/parser/" + uuid + ".dem") if err != nil { deleteFile(srv, file.Id) - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailProcessDemo) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordProcessDemoFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -145,7 +144,7 @@ func CreateRecordWithDemo(c *gin.Context) { _, err = tx.Exec(`INSERT INTO demos (id,location_id) VALUES ($1,$2)`, uuid, file.Id) if err != nil { deleteFile(srv, file.Id) - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailInsertDemo) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInsertDemoFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -167,42 +166,26 @@ func CreateRecordWithDemo(c *gin.Context) { if err != nil { deleteFile(srv, hostDemoFileID) deleteFile(srv, partnerDemoFileID) - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailInsertRecord) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInsertRecordFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } - // If a new world record based on portal count - // if record.ScoreCount < wrScore { - // _, err := tx.Exec(`UPDATE maps SET wr_score = $1, wr_time = $2 WHERE id = $3`, record.ScoreCount, record.ScoreTime, mapId) - // if err != nil { - // c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) - // return - // } - // } } else { sql := `INSERT INTO records_sp(map_id,score_count,score_time,user_id,demo_id) VALUES($1, $2, $3, $4, $5)` _, err := tx.Exec(sql, mapId, hostDemoScoreCount, hostDemoScoreTime, user.(models.User).SteamID, hostDemoUUID) if err != nil { deleteFile(srv, hostDemoFileID) - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordFailInsertRecord) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInsertRecordFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } - // If a new world record based on portal count - // if record.ScoreCount < wrScore { - // _, err := tx.Exec(`UPDATE maps SET wr_score = $1, wr_time = $2 WHERE id = $3`, record.ScoreCount, record.ScoreTime, mapId) - // if err != nil { - // c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) - // return - // } - // } } if err = tx.Commit(); err != nil { c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } - CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionRecordSuccess) + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordSuccess) c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Successfully created record.", @@ -256,10 +239,12 @@ func DeleteRecord(c *gin.Context) { sql = `SELECT mp.id FROM records_mp mp WHERE mp.id = $1 AND mp.map_id = $2 AND (mp.host_id = $3 OR mp.partner_id = $3) AND is_deleted = false` err = database.DB.QueryRow(sql, recordID, mapID, user.(models.User).SteamID).Scan(&validateRecordID) if err != nil { + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "S#records_mp: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } if recordID != validateRecordID { + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "recordID != validateRecordID") c.JSON(http.StatusOK, models.ErrorResponse("Selected record does not exist.")) return } @@ -267,6 +252,7 @@ func DeleteRecord(c *gin.Context) { sql = `UPDATE records_mp SET is_deleted = true WHERE id = $1` _, err = database.DB.Exec(sql, recordID) if err != nil { + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "U#records_mp: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -276,10 +262,12 @@ func DeleteRecord(c *gin.Context) { sql = `SELECT sp.id FROM records_sp sp WHERE sp.id = $1 AND sp.map_id = $2 AND sp.user_id = $3 AND is_deleted = false` err = database.DB.QueryRow(sql, recordID, mapID, user.(models.User).SteamID).Scan(&validateRecordID) if err != nil { + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "S#records_sp: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } if recordID != validateRecordID { + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "recordID != validateRecordID") c.JSON(http.StatusOK, models.ErrorResponse("Selected record does not exist.")) return } @@ -287,10 +275,12 @@ func DeleteRecord(c *gin.Context) { sql = `UPDATE records_sp SET is_deleted = true WHERE id = $1` _, err = database.DB.Exec(sql, recordID) if err != nil { + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "U#records_sp: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } } + CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordSuccess) c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Successfully deleted record.", diff --git a/backend/handlers/user.go b/backend/handlers/user.go index 1b20af0..461e521 100644 --- a/backend/handlers/user.go +++ b/backend/handlers/user.go @@ -800,7 +800,7 @@ func UpdateUser(c *gin.Context) { } profile, err := GetPlayerSummaries(user.(models.User).SteamID, os.Getenv("API_KEY")) if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeUser, LogDescriptionUserUpdateSummaryFail) + CreateLog(user.(models.User).SteamID, LogTypeUser, LogDescriptionUserUpdateSummaryFail, err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -808,7 +808,7 @@ func UpdateUser(c *gin.Context) { _, err = database.DB.Exec(`UPDATE users SET username = $1, avatar_link = $2, country_code = $3, updated_at = $4 WHERE steam_id = $5`, profile.PersonaName, profile.AvatarFull, profile.LocCountryCode, time.Now().UTC(), user.(models.User).SteamID) if err != nil { - CreateLog(user.(models.User).SteamID, LogTypeUser, LogDescriptionUserUpdateFail) + CreateLog(user.(models.User).SteamID, LogTypeUser, LogDescriptionUserUpdateFail, "U#users: "+err.Error()) c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } -- cgit v1.2.3