aboutsummaryrefslogtreecommitdiff
path: root/backend/handlers/mod.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/handlers/mod.go')
-rw-r--r--backend/handlers/mod.go29
1 files changed, 26 insertions, 3 deletions
diff --git a/backend/handlers/mod.go b/backend/handlers/mod.go
index 3559887..b8b6f9f 100644
--- a/backend/handlers/mod.go
+++ b/backend/handlers/mod.go
@@ -62,17 +62,20 @@ func CreateMapSummary(c *gin.Context) {
62 id := c.Param("mapid") 62 id := c.Param("mapid")
63 mapID, err := strconv.Atoi(id) 63 mapID, err := strconv.Atoi(id)
64 if err != nil { 64 if err != nil {
65 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "ATOI: "+err.Error())
65 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 66 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
66 return 67 return
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 {
71 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "BIND: "+err.Error())
70 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 72 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
71 return 73 return
72 } 74 }
73 // Start database transaction 75 // Start database transaction
74 tx, err := database.DB.Begin() 76 tx, err := database.DB.Begin()
75 if err != nil { 77 if err != nil {
78 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "TX#B: "+err.Error())
76 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 79 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
77 return 80 return
78 } 81 }
@@ -82,6 +85,7 @@ func CreateMapSummary(c *gin.Context) {
82 sql := `SELECT m.id FROM maps m WHERE m.id = $1` 85 sql := `SELECT m.id FROM maps m WHERE m.id = $1`
83 err = database.DB.QueryRow(sql, mapID).Scan(&checkMapID) 86 err = database.DB.QueryRow(sql, mapID).Scan(&checkMapID)
84 if err != nil { 87 if err != nil {
88 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "S#maps: "+err.Error())
85 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 89 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
86 return 90 return
87 } 91 }
@@ -94,6 +98,7 @@ func CreateMapSummary(c *gin.Context) {
94 VALUES ($1,$2,$3,$4,$5)` 98 VALUES ($1,$2,$3,$4,$5)`
95 _, err = tx.Exec(sql, mapID, request.CategoryID, request.ScoreCount, request.Description, request.Showcase) 99 _, err = tx.Exec(sql, mapID, request.CategoryID, request.ScoreCount, request.Description, request.Showcase)
96 if err != nil { 100 if err != nil {
101 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "I#map_routes: "+err.Error())
97 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 102 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
98 return 103 return
99 } 104 }
@@ -101,14 +106,16 @@ func CreateMapSummary(c *gin.Context) {
101 VALUES ($1,$2,$3,$4,$5)` 106 VALUES ($1,$2,$3,$4,$5)`
102 _, err = tx.Exec(sql, mapID, request.CategoryID, request.UserName, request.ScoreCount, request.RecordDate) 107 _, err = tx.Exec(sql, mapID, request.CategoryID, request.UserName, request.ScoreCount, request.RecordDate)
103 if err != nil { 108 if err != nil {
109 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "I#map_history: "+err.Error())
104 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 110 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
105 return 111 return
106 } 112 }
107 if err = tx.Commit(); err != nil { 113 if err = tx.Commit(); err != nil {
114 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateFail, "TX#C: "+err.Error())
108 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 115 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
109 return 116 return
110 } 117 }
111 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreate) 118 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryCreateSuccess)
112 c.JSON(http.StatusOK, models.Response{ 119 c.JSON(http.StatusOK, models.Response{
113 Success: true, 120 Success: true,
114 Message: "Successfully created map summary.", 121 Message: "Successfully created map summary.",
@@ -142,17 +149,20 @@ func EditMapSummary(c *gin.Context) {
142 id := c.Param("mapid") 149 id := c.Param("mapid")
143 mapID, err := strconv.Atoi(id) 150 mapID, err := strconv.Atoi(id)
144 if err != nil { 151 if err != nil {
152 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "ATOI: "+err.Error())
145 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 153 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
146 return 154 return
147 } 155 }
148 var request EditMapSummaryRequest 156 var request EditMapSummaryRequest
149 if err := c.BindJSON(&request); err != nil { 157 if err := c.BindJSON(&request); err != nil {
158 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "BIND: "+err.Error())
150 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 159 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
151 return 160 return
152 } 161 }
153 // Start database transaction 162 // Start database transaction
154 tx, err := database.DB.Begin() 163 tx, err := database.DB.Begin()
155 if err != nil { 164 if err != nil {
165 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "TX#B: "+err.Error())
156 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 166 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
157 return 167 return
158 } 168 }
@@ -162,12 +172,14 @@ func EditMapSummary(c *gin.Context) {
162 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` 172 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`
163 err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&categoryID, &scoreCount) 173 err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&categoryID, &scoreCount)
164 if err != nil { 174 if err != nil {
175 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "S#map_routes: "+err.Error())
165 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 176 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
166 return 177 return
167 } 178 }
168 sql = `SELECT mh.id FROM map_history mh WHERE mh.score_count = $1 AND mh.category_id = $2 AND mh.map_id = $3` 179 sql = `SELECT mh.id FROM map_history mh WHERE mh.score_count = $1 AND mh.category_id = $2 AND mh.map_id = $3`
169 err = database.DB.QueryRow(sql, scoreCount, categoryID, mapID).Scan(&historyID) 180 err = database.DB.QueryRow(sql, scoreCount, categoryID, mapID).Scan(&historyID)
170 if err != nil { 181 if err != nil {
182 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "S#map_history: "+err.Error())
171 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 183 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
172 return 184 return
173 } 185 }
@@ -175,20 +187,23 @@ func EditMapSummary(c *gin.Context) {
175 sql = `UPDATE map_routes SET score_count = $2, description = $3, showcase = $4 WHERE id = $1` 187 sql = `UPDATE map_routes SET score_count = $2, description = $3, showcase = $4 WHERE id = $1`
176 _, err = tx.Exec(sql, request.RouteID, request.ScoreCount, request.Description, request.Showcase) 188 _, err = tx.Exec(sql, request.RouteID, request.ScoreCount, request.Description, request.Showcase)
177 if err != nil { 189 if err != nil {
190 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "U#map_routes: "+err.Error())
178 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 191 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
179 return 192 return
180 } 193 }
181 sql = `UPDATE map_history SET user_name = $2, score_count = $3, record_date = $4 WHERE id = $1` 194 sql = `UPDATE map_history SET user_name = $2, score_count = $3, record_date = $4 WHERE id = $1`
182 _, err = tx.Exec(sql, historyID, request.UserName, request.ScoreCount, request.RecordDate) 195 _, err = tx.Exec(sql, historyID, request.UserName, request.ScoreCount, request.RecordDate)
183 if err != nil { 196 if err != nil {
197 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "U#map_history"+err.Error())
184 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 198 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
185 return 199 return
186 } 200 }
187 if err = tx.Commit(); err != nil { 201 if err = tx.Commit(); err != nil {
202 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "TX#C: "+err.Error())
188 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 203 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
189 return 204 return
190 } 205 }
191 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEdit) 206 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditSuccess)
192 c.JSON(http.StatusOK, models.Response{ 207 c.JSON(http.StatusOK, models.Response{
193 Success: true, 208 Success: true,
194 Message: "Successfully updated map summary.", 209 Message: "Successfully updated map summary.",
@@ -222,17 +237,20 @@ func DeleteMapSummary(c *gin.Context) {
222 id := c.Param("mapid") 237 id := c.Param("mapid")
223 mapID, err := strconv.Atoi(id) 238 mapID, err := strconv.Atoi(id)
224 if err != nil { 239 if err != nil {
240 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "ATOI: "+err.Error())
225 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 241 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
226 return 242 return
227 } 243 }
228 var request DeleteMapSummaryRequest 244 var request DeleteMapSummaryRequest
229 if err := c.BindJSON(&request); err != nil { 245 if err := c.BindJSON(&request); err != nil {
246 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryEditFail, "BIND: "+err.Error())
230 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 247 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
231 return 248 return
232 } 249 }
233 // Start database transaction 250 // Start database transaction
234 tx, err := database.DB.Begin() 251 tx, err := database.DB.Begin()
235 if err != nil { 252 if err != nil {
253 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "TX#B: "+err.Error())
236 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 254 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
237 return 255 return
238 } 256 }
@@ -242,6 +260,7 @@ func DeleteMapSummary(c *gin.Context) {
242 sql := `SELECT m.id, mr.score_count FROM maps m INNER JOIN map_routes mr ON m.id=mr.map_id WHERE m.id = $1 AND mr.id = $2` 260 sql := `SELECT m.id, mr.score_count FROM maps m INNER JOIN map_routes mr ON m.id=mr.map_id WHERE m.id = $1 AND mr.id = $2`
243 err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&checkMapID, &scoreCount) 261 err = database.DB.QueryRow(sql, mapID, request.RouteID).Scan(&checkMapID, &scoreCount)
244 if err != nil { 262 if err != nil {
263 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "S#map_routes: "+err.Error())
245 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 264 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
246 return 265 return
247 } 266 }
@@ -252,6 +271,7 @@ func DeleteMapSummary(c *gin.Context) {
252 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 mr.id = $2 AND mh.score_count = $3` 271 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 mr.id = $2 AND mh.score_count = $3`
253 err = database.DB.QueryRow(sql, mapID, request.RouteID, scoreCount).Scan(&mapHistoryID) 272 err = database.DB.QueryRow(sql, mapID, request.RouteID, scoreCount).Scan(&mapHistoryID)
254 if err != nil { 273 if err != nil {
274 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "S#map_history: "+err.Error())
255 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 275 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
256 return 276 return
257 } 277 }
@@ -259,20 +279,23 @@ func DeleteMapSummary(c *gin.Context) {
259 sql = `DELETE FROM map_routes mr WHERE mr.id = $1 ` 279 sql = `DELETE FROM map_routes mr WHERE mr.id = $1 `
260 _, err = tx.Exec(sql, request.RouteID) 280 _, err = tx.Exec(sql, request.RouteID)
261 if err != nil { 281 if err != nil {
282 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "D#map_routes: "+err.Error())
262 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 283 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
263 return 284 return
264 } 285 }
265 sql = `DELETE FROM map_history mh WHERE mh.id = $1` 286 sql = `DELETE FROM map_history mh WHERE mh.id = $1`
266 _, err = tx.Exec(sql, mapHistoryID) 287 _, err = tx.Exec(sql, mapHistoryID)
267 if err != nil { 288 if err != nil {
289 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "D#map_history: "+err.Error())
268 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 290 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
269 return 291 return
270 } 292 }
271 if err = tx.Commit(); err != nil { 293 if err = tx.Commit(); err != nil {
294 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteFail, "TX#C: "+err.Error())
272 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 295 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
273 return 296 return
274 } 297 }
275 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDelete) 298 CreateLog(user.(models.User).SteamID, LogTypeMod, LogDescriptionMapSummaryDeleteSuccess)
276 c.JSON(http.StatusOK, models.Response{ 299 c.JSON(http.StatusOK, models.Response{
277 Success: true, 300 Success: true,
278 Message: "Successfully delete map summary.", 301 Message: "Successfully delete map summary.",