diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-28 18:40:58 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-28 18:40:58 +0300 |
| commit | b37e49da3698a3c92b214931a23dcdb1ac41587c (patch) | |
| tree | 569d8e3e7fdffe5dd67919ce82853aaed69f69e9 | |
| parent | fix: check for category id for map history when deleting summary (#106) (diff) | |
| download | lphub-b37e49da3698a3c92b214931a23dcdb1ac41587c.tar.gz lphub-b37e49da3698a3c92b214931a23dcdb1ac41587c.tar.bz2 lphub-b37e49da3698a3c92b214931a23dcdb1ac41587c.zip | |
feat: improve logs and mod log endpoint (#55)
Former-commit-id: 7f2d9100cc4bd78c27544909fe7215913d6a2dfe
| -rw-r--r-- | backend/database/init.sql | 4 | ||||
| -rw-r--r-- | backend/handlers/logs.go | 28 | ||||
| -rw-r--r-- | backend/handlers/mod.go | 39 | ||||
| -rw-r--r-- | backend/handlers/record.go | 8 | ||||
| -rw-r--r-- | backend/handlers/user.go | 2 |
5 files changed, 44 insertions, 37 deletions
diff --git a/backend/database/init.sql b/backend/database/init.sql index 92ddb07..17a0ce5 100644 --- a/backend/database/init.sql +++ b/backend/database/init.sql | |||
| @@ -50,7 +50,7 @@ CREATE TABLE map_routes ( | |||
| 50 | category_id SMALLINT NOT NULL, | 50 | category_id SMALLINT NOT NULL, |
| 51 | score_count SMALLINT NOT NULL, | 51 | score_count SMALLINT NOT NULL, |
| 52 | description TEXT NOT NULL, | 52 | description TEXT NOT NULL, |
| 53 | showcase TEXT NOT NULL DEFAULT '-', | 53 | showcase TEXT NOT NULL DEFAULT, |
| 54 | PRIMARY KEY (id), | 54 | PRIMARY KEY (id), |
| 55 | FOREIGN KEY (map_id) REFERENCES maps(id), | 55 | FOREIGN KEY (map_id) REFERENCES maps(id), |
| 56 | FOREIGN KEY (category_id) REFERENCES categories(id), | 56 | FOREIGN KEY (category_id) REFERENCES categories(id), |
| @@ -181,7 +181,7 @@ CREATE TABLE logs ( | |||
| 181 | user_id TEXT NOT NULL, | 181 | user_id TEXT NOT NULL, |
| 182 | type TEXT NOT NULL, | 182 | type TEXT NOT NULL, |
| 183 | description TEXT NOT NULL, | 183 | description TEXT NOT NULL, |
| 184 | message TEXT NOT NULL DEFAULT '-', | 184 | message TEXT NOT NULL DEFAULT, |
| 185 | date TIMESTAMP NOT NULL DEFAULT now(), | 185 | date TIMESTAMP NOT NULL DEFAULT now(), |
| 186 | PRIMARY KEY (id), | 186 | PRIMARY KEY (id), |
| 187 | FOREIGN KEY (user_id) REFERENCES users(steam_id) | 187 | FOREIGN KEY (user_id) REFERENCES users(steam_id) |
diff --git a/backend/handlers/logs.go b/backend/handlers/logs.go index 0a0b6be..23c4a39 100644 --- a/backend/handlers/logs.go +++ b/backend/handlers/logs.go | |||
| @@ -25,13 +25,14 @@ const ( | |||
| 25 | LogDescriptionUserUpdateCountrySuccess string = "UpdateCountrySuccess" | 25 | LogDescriptionUserUpdateCountrySuccess string = "UpdateCountrySuccess" |
| 26 | LogDescriptionUserUpdateCountryFail string = "UpdateCountryFail" | 26 | LogDescriptionUserUpdateCountryFail string = "UpdateCountryFail" |
| 27 | 27 | ||
| 28 | LogDescriptionMapSummaryCreateSuccess string = "MapSummaryCreateSuccess" | 28 | LogDescriptionMapSummaryCreateSuccess string = "MapSummaryCreateSuccess" |
| 29 | LogDescriptionMapSummaryCreateFail string = "MapSummaryCreateFail" | 29 | LogDescriptionMapSummaryCreateFail string = "MapSummaryCreateFail" |
| 30 | LogDescriptionMapSummaryEditSuccess string = "MapSummaryEditSuccess" | 30 | LogDescriptionMapSummaryEditSuccess string = "MapSummaryEditSuccess" |
| 31 | LogDescriptionMapSummaryEditFail string = "MapSummaryEditFail" | 31 | LogDescriptionMapSummaryEditFail string = "MapSummaryEditFail" |
| 32 | LogDescriptionMapSummaryEditImage string = "MapSummaryEditImage" | 32 | LogDescriptionMapSummaryEditImageSuccess string = "MapSummaryEditImageSuccess" |
| 33 | LogDescriptionMapSummaryDeleteSuccess string = "MapSummaryDeleteSuccess" | 33 | LogDescriptionMapSummaryEditImageFail string = "MapSummaryEditImageFail" |
| 34 | LogDescriptionMapSummaryDeleteFail string = "MapSummaryDeleteFail" | 34 | LogDescriptionMapSummaryDeleteSuccess string = "MapSummaryDeleteSuccess" |
| 35 | LogDescriptionMapSummaryDeleteFail string = "MapSummaryDeleteFail" | ||
| 35 | 36 | ||
| 36 | LogDescriptionCreateRecordSuccess string = "CreateRecordSuccess" | 37 | LogDescriptionCreateRecordSuccess string = "CreateRecordSuccess" |
| 37 | LogDescriptionCreateRecordInsertRecordFail string = "InsertRecordFail" | 38 | LogDescriptionCreateRecordInsertRecordFail string = "InsertRecordFail" |
| @@ -49,6 +50,7 @@ type Log struct { | |||
| 49 | User models.UserShort `json:"user"` | 50 | User models.UserShort `json:"user"` |
| 50 | Type string `json:"type"` | 51 | Type string `json:"type"` |
| 51 | Description string `json:"description"` | 52 | Description string `json:"description"` |
| 53 | Message string `json:"message"` | ||
| 52 | Date time.Time `json:"date"` | 54 | Date time.Time `json:"date"` |
| 53 | } | 55 | } |
| 54 | 56 | ||
| @@ -57,9 +59,10 @@ type LogsResponse struct { | |||
| 57 | } | 59 | } |
| 58 | 60 | ||
| 59 | type LogsResponseDetails struct { | 61 | type LogsResponseDetails struct { |
| 60 | User models.UserShort `json:"user"` | 62 | User models.UserShort `json:"user"` |
| 61 | Log string `json:"detail"` | 63 | Log string `json:"detail"` |
| 62 | Date time.Time `json:"date"` | 64 | Message string `json:"message"` |
| 65 | Date time.Time `json:"date"` | ||
| 63 | } | 66 | } |
| 64 | 67 | ||
| 65 | type ScoreLogsResponse struct { | 68 | type ScoreLogsResponse struct { |
| @@ -112,8 +115,9 @@ func ModLogs(c *gin.Context) { | |||
| 112 | SteamID: log.User.SteamID, | 115 | SteamID: log.User.SteamID, |
| 113 | UserName: log.User.UserName, | 116 | UserName: log.User.UserName, |
| 114 | }, | 117 | }, |
| 115 | Log: detail, | 118 | Log: detail, |
| 116 | Date: log.Date, | 119 | Message: log.Message, |
| 120 | Date: log.Date, | ||
| 117 | }) | 121 | }) |
| 118 | } | 122 | } |
| 119 | c.JSON(http.StatusOK, models.Response{ | 123 | c.JSON(http.StatusOK, models.Response{ |
diff --git a/backend/handlers/mod.go b/backend/handlers/mod.go index 89e3618..845152f 100644 --- a/backend/handlers/mod.go +++ b/backend/handlers/mod.go | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | package handlers | 1 | package handlers |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | ||
| 4 | "net/http" | 5 | "net/http" |
| 5 | "strconv" | 6 | "strconv" |
| 6 | "time" | 7 | "time" |
| @@ -67,7 +68,7 @@ func CreateMapSummary(c *gin.Context) { | |||
| 67 | } | 68 | } |
| 68 | var request CreateMapSummaryRequest | 69 | var request CreateMapSummaryRequest |
| 69 | if err := c.BindJSON(&request); err != nil { | 70 | if err := c.BindJSON(&request); err != nil { |
| 70 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "BIND: "+err.Error()) | 71 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, fmt.Sprintf("BIND: %s", err.Error())) |
| 71 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 72 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 72 | return | 73 | return |
| 73 | } | 74 | } |
| @@ -83,7 +84,7 @@ func CreateMapSummary(c *gin.Context) { | |||
| 83 | sql := `SELECT m.id FROM maps m WHERE m.id = $1` | 84 | sql := `SELECT m.id FROM maps m WHERE m.id = $1` |
| 84 | err = database.DB.QueryRow(sql, mapID).Scan(&checkMapID) | 85 | err = database.DB.QueryRow(sql, mapID).Scan(&checkMapID) |
| 85 | if err != nil { | 86 | if err != nil { |
| 86 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "S#maps: "+err.Error()) | 87 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, fmt.Sprintf("SELECT#maps: %s", err.Error())) |
| 87 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 88 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 88 | return | 89 | return |
| 89 | } | 90 | } |
| @@ -96,7 +97,7 @@ func CreateMapSummary(c *gin.Context) { | |||
| 96 | VALUES ($1,$2,$3,$4,$5)` | 97 | VALUES ($1,$2,$3,$4,$5)` |
| 97 | _, err = tx.Exec(sql, mapID, request.CategoryID, request.ScoreCount, request.Description, request.Showcase) | 98 | _, err = tx.Exec(sql, mapID, request.CategoryID, request.ScoreCount, request.Description, request.Showcase) |
| 98 | if err != nil { | 99 | if err != nil { |
| 99 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "I#map_routes: "+err.Error()) | 100 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, fmt.Sprintf("INSERT#map_routes: %s", err.Error())) |
| 100 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 101 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 101 | return | 102 | return |
| 102 | } | 103 | } |
| @@ -104,7 +105,7 @@ func CreateMapSummary(c *gin.Context) { | |||
| 104 | VALUES ($1,$2,$3,$4,$5)` | 105 | VALUES ($1,$2,$3,$4,$5)` |
| 105 | _, err = tx.Exec(sql, mapID, request.CategoryID, request.UserName, request.ScoreCount, request.RecordDate) | 106 | _, err = tx.Exec(sql, mapID, request.CategoryID, request.UserName, request.ScoreCount, request.RecordDate) |
| 106 | if err != nil { | 107 | if err != nil { |
| 107 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "I#map_history: "+err.Error()) | 108 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, fmt.Sprintf("INSERT#map_history: %s", err.Error())) |
| 108 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 109 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 109 | return | 110 | return |
| 110 | } | 111 | } |
| @@ -112,7 +113,7 @@ func CreateMapSummary(c *gin.Context) { | |||
| 112 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 113 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 113 | return | 114 | return |
| 114 | } | 115 | } |
| 115 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateSuccess) | 116 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateSuccess, fmt.Sprintf("MapID: %d | CategoryID: %d | ScoreCount: %d", mapID, request.CategoryID, *request.ScoreCount)) |
| 116 | c.JSON(http.StatusOK, models.Response{ | 117 | c.JSON(http.StatusOK, models.Response{ |
| 117 | Success: true, | 118 | Success: true, |
| 118 | Message: "Successfully created map summary.", | 119 | Message: "Successfully created map summary.", |
| @@ -151,7 +152,7 @@ func EditMapSummary(c *gin.Context) { | |||
| 151 | } | 152 | } |
| 152 | var request EditMapSummaryRequest | 153 | var request EditMapSummaryRequest |
| 153 | if err := c.BindJSON(&request); err != nil { | 154 | if err := c.BindJSON(&request); err != nil { |
| 154 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "BIND: "+err.Error()) | 155 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, fmt.Sprintf("BIND: %s", err.Error())) |
| 155 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 156 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 156 | return | 157 | return |
| 157 | } | 158 | } |
| @@ -167,14 +168,14 @@ func EditMapSummary(c *gin.Context) { | |||
| 167 | sql := `SELECT mr.category_id, mr.score_count FROM map_routes mr INNER JOIN maps m ON m.id = mr.map_id WHERE m.id = $1 AND mr.id = $2` | 168 | sql := `SELECT mr.category_id, mr.score_count FROM map_routes mr INNER JOIN maps m ON m.id = mr.map_id WHERE m.id = $1 AND mr.id = $2` |
| 168 | err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&categoryID, &scoreCount) | 169 | err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&categoryID, &scoreCount) |
| 169 | if err != nil { | 170 | if err != nil { |
| 170 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "S#map_routes: "+err.Error()) | 171 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, fmt.Sprintf("(RouteID: %d) SELECT#map_routes: %s", request.RouteID, err.Error())) |
| 171 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 172 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 172 | return | 173 | return |
| 173 | } | 174 | } |
| 174 | sql = `SELECT mh.id FROM map_history mh WHERE mh.score_count = $1 AND mh.category_id = $2 AND mh.map_id = $3` | 175 | sql = `SELECT mh.id FROM map_history mh WHERE mh.score_count = $1 AND mh.category_id = $2 AND mh.map_id = $3` |
| 175 | err = database.DB.QueryRow(sql, scoreCount, categoryID, mapID).Scan(&historyID) | 176 | err = database.DB.QueryRow(sql, scoreCount, categoryID, mapID).Scan(&historyID) |
| 176 | if err != nil { | 177 | if err != nil { |
| 177 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "S#map_history: "+err.Error()) | 178 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, fmt.Sprintf("(RouteID: %d) SELECT#map_history: %s", request.RouteID, err.Error())) |
| 178 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 179 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 179 | return | 180 | return |
| 180 | } | 181 | } |
| @@ -182,14 +183,14 @@ func EditMapSummary(c *gin.Context) { | |||
| 182 | sql = `UPDATE map_routes SET score_count = $2, description = $3, showcase = $4 WHERE id = $1` | 183 | sql = `UPDATE map_routes SET score_count = $2, description = $3, showcase = $4 WHERE id = $1` |
| 183 | _, err = tx.Exec(sql, request.RouteID, request.ScoreCount, request.Description, request.Showcase) | 184 | _, err = tx.Exec(sql, request.RouteID, request.ScoreCount, request.Description, request.Showcase) |
| 184 | if err != nil { | 185 | if err != nil { |
| 185 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "U#map_routes: "+err.Error()) | 186 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, fmt.Sprintf("(RouteID: %d) UPDATE#map_routes: %s", request.RouteID, err.Error())) |
| 186 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 187 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 187 | return | 188 | return |
| 188 | } | 189 | } |
| 189 | sql = `UPDATE map_history SET user_name = $2, score_count = $3, record_date = $4 WHERE id = $1` | 190 | sql = `UPDATE map_history SET user_name = $2, score_count = $3, record_date = $4 WHERE id = $1` |
| 190 | _, err = tx.Exec(sql, historyID, request.UserName, request.ScoreCount, request.RecordDate) | 191 | _, err = tx.Exec(sql, historyID, request.UserName, request.ScoreCount, request.RecordDate) |
| 191 | if err != nil { | 192 | if err != nil { |
| 192 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "U#map_history"+err.Error()) | 193 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, fmt.Sprintf("(HistoryID: %d) UPDATE#map_history: %s", historyID, err.Error())) |
| 193 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 194 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 194 | return | 195 | return |
| 195 | } | 196 | } |
| @@ -197,7 +198,7 @@ func EditMapSummary(c *gin.Context) { | |||
| 197 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 198 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 198 | return | 199 | return |
| 199 | } | 200 | } |
| 200 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditSuccess) | 201 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditSuccess, fmt.Sprintf("MapID: %d | CategoryID: %d | ScoreCount: %d", mapID, categoryID, scoreCount)) |
| 201 | c.JSON(http.StatusOK, models.Response{ | 202 | c.JSON(http.StatusOK, models.Response{ |
| 202 | Success: true, | 203 | Success: true, |
| 203 | Message: "Successfully updated map summary.", | 204 | Message: "Successfully updated map summary.", |
| @@ -236,7 +237,7 @@ func DeleteMapSummary(c *gin.Context) { | |||
| 236 | } | 237 | } |
| 237 | var request DeleteMapSummaryRequest | 238 | var request DeleteMapSummaryRequest |
| 238 | if err := c.BindJSON(&request); err != nil { | 239 | if err := c.BindJSON(&request); err != nil { |
| 239 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "BIND: "+err.Error()) | 240 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, fmt.Sprintf("(RouteID: %d) BIND: %s", request.RouteID, err.Error())) |
| 240 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 241 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 241 | return | 242 | return |
| 242 | } | 243 | } |
| @@ -252,7 +253,7 @@ func DeleteMapSummary(c *gin.Context) { | |||
| 252 | sql := `SELECT m.id, mr.score_count, mr.category_id FROM maps m INNER JOIN map_routes mr ON m.id=mr.map_id WHERE m.id = $1 AND mr.id = $2` | 253 | sql := `SELECT m.id, mr.score_count, mr.category_id FROM maps m INNER JOIN map_routes mr ON m.id=mr.map_id WHERE m.id = $1 AND mr.id = $2` |
| 253 | err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&checkMapID, &scoreCount, &categoryID) | 254 | err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&checkMapID, &scoreCount, &categoryID) |
| 254 | if err != nil { | 255 | if err != nil { |
| 255 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "S#map_routes: "+err.Error()) | 256 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, fmt.Sprintf("(RouteID: %d) SELECT#map_routes: %s", request.RouteID, err.Error())) |
| 256 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 257 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 257 | return | 258 | return |
| 258 | } | 259 | } |
| @@ -263,7 +264,7 @@ func DeleteMapSummary(c *gin.Context) { | |||
| 263 | sql = `SELECT mh.id FROM maps m INNER JOIN map_routes mr ON m.id=mr.map_id INNER JOIN map_history mh ON m.id=mh.map_id WHERE m.id = $1 AND mh.category_id = $2 AND mh.score_count = $3` | 264 | sql = `SELECT mh.id FROM maps m INNER JOIN map_routes mr ON m.id=mr.map_id INNER JOIN map_history mh ON m.id=mh.map_id WHERE m.id = $1 AND mh.category_id = $2 AND mh.score_count = $3` |
| 264 | err = database.DB.QueryRow(sql, mapID, categoryID, scoreCount).Scan(&mapHistoryID) | 265 | err = database.DB.QueryRow(sql, mapID, categoryID, scoreCount).Scan(&mapHistoryID) |
| 265 | if err != nil { | 266 | if err != nil { |
| 266 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "S#map_history: "+err.Error()) | 267 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, fmt.Sprintf("(RouteID: %d) SELECT#map_history: %s", request.RouteID, err.Error())) |
| 267 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 268 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 268 | return | 269 | return |
| 269 | } | 270 | } |
| @@ -271,14 +272,14 @@ func DeleteMapSummary(c *gin.Context) { | |||
| 271 | sql = `DELETE FROM map_routes mr WHERE mr.id = $1 ` | 272 | sql = `DELETE FROM map_routes mr WHERE mr.id = $1 ` |
| 272 | _, err = tx.Exec(sql, request.RouteID) | 273 | _, err = tx.Exec(sql, request.RouteID) |
| 273 | if err != nil { | 274 | if err != nil { |
| 274 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "D#map_routes: "+err.Error()) | 275 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, fmt.Sprintf("(RouteID: %d) DELETE#map_routes: %s", request.RouteID, err.Error())) |
| 275 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 276 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 276 | return | 277 | return |
| 277 | } | 278 | } |
| 278 | sql = `DELETE FROM map_history mh WHERE mh.id = $1` | 279 | sql = `DELETE FROM map_history mh WHERE mh.id = $1` |
| 279 | _, err = tx.Exec(sql, mapHistoryID) | 280 | _, err = tx.Exec(sql, mapHistoryID) |
| 280 | if err != nil { | 281 | if err != nil { |
| 281 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "D#map_history: "+err.Error()) | 282 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, fmt.Sprintf("(HistoryID: %d) DELETE#map_history: %s", mapHistoryID, err.Error())) |
| 282 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 283 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 283 | return | 284 | return |
| 284 | } | 285 | } |
| @@ -286,7 +287,7 @@ func DeleteMapSummary(c *gin.Context) { | |||
| 286 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 287 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 287 | return | 288 | return |
| 288 | } | 289 | } |
| 289 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteSuccess) | 290 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteSuccess, fmt.Sprintf("MapID: %d | CategoryID: %d | ScoreCount: %d", mapID, categoryID, scoreCount)) |
| 290 | c.JSON(http.StatusOK, models.Response{ | 291 | c.JSON(http.StatusOK, models.Response{ |
| 291 | Success: true, | 292 | Success: true, |
| 292 | Message: "Successfully delete map summary.", | 293 | Message: "Successfully delete map summary.", |
| @@ -325,6 +326,7 @@ func EditMapImage(c *gin.Context) { | |||
| 325 | } | 326 | } |
| 326 | var request EditMapImageRequest | 327 | var request EditMapImageRequest |
| 327 | if err := c.BindJSON(&request); err != nil { | 328 | if err := c.BindJSON(&request); err != nil { |
| 329 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditImageFail, fmt.Sprintf("BIND: %s", err.Error())) | ||
| 328 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 330 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 329 | return | 331 | return |
| 330 | } | 332 | } |
| @@ -332,10 +334,11 @@ func EditMapImage(c *gin.Context) { | |||
| 332 | sql := `UPDATE maps SET image = $2 WHERE id = $1` | 334 | sql := `UPDATE maps SET image = $2 WHERE id = $1` |
| 333 | _, err = database.DB.Exec(sql, mapID, request.Image) | 335 | _, err = database.DB.Exec(sql, mapID, request.Image) |
| 334 | if err != nil { | 336 | if err != nil { |
| 337 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditImageFail, fmt.Sprintf("UPDATE#maps: %s", err.Error())) | ||
| 335 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 338 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 336 | return | 339 | return |
| 337 | } | 340 | } |
| 338 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditImage) | 341 | CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditImageSuccess) |
| 339 | c.JSON(http.StatusOK, models.Response{ | 342 | c.JSON(http.StatusOK, models.Response{ |
| 340 | Success: true, | 343 | Success: true, |
| 341 | Message: "Successfully updated map image.", | 344 | Message: "Successfully updated map image.", |
diff --git a/backend/handlers/record.go b/backend/handlers/record.go index 2dbc766..697cd40 100644 --- a/backend/handlers/record.go +++ b/backend/handlers/record.go | |||
| @@ -239,7 +239,7 @@ func DeleteRecord(c *gin.Context) { | |||
| 239 | 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` | 239 | 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` |
| 240 | err = database.DB.QueryRow(sql, recordID, mapID, user.(models.User).SteamID).Scan(&validateRecordID) | 240 | err = database.DB.QueryRow(sql, recordID, mapID, user.(models.User).SteamID).Scan(&validateRecordID) |
| 241 | if err != nil { | 241 | if err != nil { |
| 242 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "S#records_mp: "+err.Error()) | 242 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "SELECT#records_mp: "+err.Error()) |
| 243 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 243 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 244 | return | 244 | return |
| 245 | } | 245 | } |
| @@ -252,7 +252,7 @@ func DeleteRecord(c *gin.Context) { | |||
| 252 | sql = `UPDATE records_mp SET is_deleted = true WHERE id = $1` | 252 | sql = `UPDATE records_mp SET is_deleted = true WHERE id = $1` |
| 253 | _, err = database.DB.Exec(sql, recordID) | 253 | _, err = database.DB.Exec(sql, recordID) |
| 254 | if err != nil { | 254 | if err != nil { |
| 255 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "U#records_mp: "+err.Error()) | 255 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "UPDATE#records_mp: "+err.Error()) |
| 256 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 256 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 257 | return | 257 | return |
| 258 | } | 258 | } |
| @@ -262,7 +262,7 @@ func DeleteRecord(c *gin.Context) { | |||
| 262 | 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` | 262 | 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` |
| 263 | err = database.DB.QueryRow(sql, recordID, mapID, user.(models.User).SteamID).Scan(&validateRecordID) | 263 | err = database.DB.QueryRow(sql, recordID, mapID, user.(models.User).SteamID).Scan(&validateRecordID) |
| 264 | if err != nil { | 264 | if err != nil { |
| 265 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "S#records_sp: "+err.Error()) | 265 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "SELECT#records_sp: "+err.Error()) |
| 266 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 266 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 267 | return | 267 | return |
| 268 | } | 268 | } |
| @@ -275,7 +275,7 @@ func DeleteRecord(c *gin.Context) { | |||
| 275 | sql = `UPDATE records_sp SET is_deleted = true WHERE id = $1` | 275 | sql = `UPDATE records_sp SET is_deleted = true WHERE id = $1` |
| 276 | _, err = database.DB.Exec(sql, recordID) | 276 | _, err = database.DB.Exec(sql, recordID) |
| 277 | if err != nil { | 277 | if err != nil { |
| 278 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "U#records_sp: "+err.Error()) | 278 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionDeleteRecordFail, "UPDATE#records_sp: "+err.Error()) |
| 279 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 279 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 280 | return | 280 | return |
| 281 | } | 281 | } |
diff --git a/backend/handlers/user.go b/backend/handlers/user.go index 461e521..c985471 100644 --- a/backend/handlers/user.go +++ b/backend/handlers/user.go | |||
| @@ -808,7 +808,7 @@ func UpdateUser(c *gin.Context) { | |||
| 808 | _, err = database.DB.Exec(`UPDATE users SET username = $1, avatar_link = $2, country_code = $3, updated_at = $4 | 808 | _, err = database.DB.Exec(`UPDATE users SET username = $1, avatar_link = $2, country_code = $3, updated_at = $4 |
| 809 | WHERE steam_id = $5`, profile.PersonaName, profile.AvatarFull, profile.LocCountryCode, time.Now().UTC(), user.(models.User).SteamID) | 809 | WHERE steam_id = $5`, profile.PersonaName, profile.AvatarFull, profile.LocCountryCode, time.Now().UTC(), user.(models.User).SteamID) |
| 810 | if err != nil { | 810 | if err != nil { |
| 811 | CreateLog(user.(models.User).SteamID, LogTypeUser, LogDescriptionUserUpdateFail, "U#users: "+err.Error()) | 811 | CreateLog(user.(models.User).SteamID, LogTypeUser, LogDescriptionUserUpdateFail, "UPDATE#users: "+err.Error()) |
| 812 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 812 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 813 | return | 813 | return |
| 814 | } | 814 | } |