diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2024-10-22 00:46:41 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2024-10-22 00:46:41 +0300 |
| commit | c2ece18ce537f709cc38b33abaf07b27aaaf90dd (patch) | |
| tree | 044bcb67f0dfe2ddf5b5476ecbcb98fa5865e985 /backend/handlers | |
| parent | backend: record get is_coop from db instead of hardcoded idiot (diff) | |
| download | lphub-c2ece18ce537f709cc38b33abaf07b27aaaf90dd.tar.gz lphub-c2ece18ce537f709cc38b33abaf07b27aaaf90dd.tar.bz2 lphub-c2ece18ce537f709cc38b33abaf07b27aaaf90dd.zip | |
backend: no need for partner_id for record submission
Diffstat (limited to 'backend/handlers')
| -rw-r--r-- | backend/handlers/record.go | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/backend/handlers/record.go b/backend/handlers/record.go index 2c763f9..c720823 100644 --- a/backend/handlers/record.go +++ b/backend/handlers/record.go | |||
| @@ -44,8 +44,6 @@ type RecordResponse struct { | |||
| 44 | // @Param Authorization header string true "JWT Token" | 44 | // @Param Authorization header string true "JWT Token" |
| 45 | // @Param host_demo formData file true "Host Demo" | 45 | // @Param host_demo formData file true "Host Demo" |
| 46 | // @Param partner_demo formData file false "Partner Demo" | 46 | // @Param partner_demo formData file false "Partner Demo" |
| 47 | // @Param is_partner_orange formData boolean false "Is Partner Orange" | ||
| 48 | // @Param partner_id formData string false "Partner ID" | ||
| 49 | // @Success 200 {object} models.Response{data=RecordResponse} | 47 | // @Success 200 {object} models.Response{data=RecordResponse} |
| 50 | // @Router /maps/{mapid}/record [post] | 48 | // @Router /maps/{mapid}/record [post] |
| 51 | func CreateRecordWithDemo(c *gin.Context) { | 49 | func CreateRecordWithDemo(c *gin.Context) { |
| @@ -82,9 +80,9 @@ func CreateRecordWithDemo(c *gin.Context) { | |||
| 82 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 80 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| 83 | return | 81 | return |
| 84 | } | 82 | } |
| 85 | if isCoop && (record.PartnerDemo == nil || record.PartnerID == "") { | 83 | if isCoop && record.PartnerDemo == nil { |
| 86 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInvalidRequestFail) | 84 | CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInvalidRequestFail) |
| 87 | c.JSON(http.StatusOK, models.ErrorResponse("Invalid entry for coop record submission.")) | 85 | c.JSON(http.StatusOK, models.ErrorResponse("Missing partner demo for coop submission.")) |
| 88 | return | 86 | return |
| 89 | } | 87 | } |
| 90 | // Demo files | 88 | // Demo files |
| @@ -193,30 +191,41 @@ func CreateRecordWithDemo(c *gin.Context) { | |||
| 193 | return | 191 | return |
| 194 | } | 192 | } |
| 195 | convertedHostSteamID := strconv.FormatInt(convertSteamID64(hostSteamID), 10) | 193 | convertedHostSteamID := strconv.FormatInt(convertSteamID64(hostSteamID), 10) |
| 196 | if convertedHostSteamID != user.(models.User).SteamID && convertedHostSteamID != record.PartnerID { | 194 | // if convertedHostSteamID != user.(models.User).SteamID && convertedHostSteamID != record.PartnerID { |
| 197 | deleteFile(srv, hostDemoFileID) | 195 | // deleteFile(srv, hostDemoFileID) |
| 198 | deleteFile(srv, partnerDemoFileID) | 196 | // deleteFile(srv, partnerDemoFileID) |
| 199 | c.JSON(http.StatusOK, models.ErrorResponse(fmt.Sprintf("Host SteamID from demo and request does not match! Check your submission and try again.\nDemo Host SteamID: %s\nRequest Host SteamID: %s", convertedHostSteamID, user.(models.User).SteamID))) | 197 | // c.JSON(http.StatusOK, models.ErrorResponse(fmt.Sprintf("Host SteamID from demo and request does not match! Check your submission and try again.\nDemo Host SteamID: %s\nRequest Host SteamID: %s", convertedHostSteamID, user.(models.User).SteamID))) |
| 200 | return | 198 | // return |
| 201 | } | 199 | // } |
| 202 | convertedPartnerSteamID := strconv.FormatInt(convertSteamID64(partnerSteamID), 10) | 200 | convertedPartnerSteamID := strconv.FormatInt(convertSteamID64(partnerSteamID), 10) |
| 203 | if convertedPartnerSteamID != record.PartnerID && convertedPartnerSteamID != user.(models.User).SteamID { | 201 | // if convertedPartnerSteamID != record.PartnerID && convertedPartnerSteamID != user.(models.User).SteamID { |
| 202 | // deleteFile(srv, hostDemoFileID) | ||
| 203 | // deleteFile(srv, partnerDemoFileID) | ||
| 204 | // c.JSON(http.StatusOK, models.ErrorResponse(fmt.Sprintf("Partner SteamID from demo and request does not match! Check your submission and try again.\nDemo Partner SteamID: %s\nRequest Partner SteamID: %s", convertedPartnerSteamID, record.PartnerID))) | ||
| 205 | // return | ||
| 206 | // } | ||
| 207 | if convertedHostSteamID != user.(models.User).SteamID || convertedPartnerSteamID != user.(models.User).SteamID { | ||
| 204 | deleteFile(srv, hostDemoFileID) | 208 | deleteFile(srv, hostDemoFileID) |
| 205 | deleteFile(srv, partnerDemoFileID) | 209 | deleteFile(srv, partnerDemoFileID) |
| 206 | c.JSON(http.StatusOK, models.ErrorResponse(fmt.Sprintf("Partner SteamID from demo and request does not match! Check your submission and try again.\nDemo Partner SteamID: %s\nRequest Partner SteamID: %s", convertedPartnerSteamID, record.PartnerID))) | 210 | c.JSON(http.StatusOK, models.ErrorResponse("You are permitted to only upload your own runs!")) |
| 207 | return | 211 | return |
| 208 | } | 212 | } |
| 209 | var verifyPartnerSteamID string | 213 | var checkPartnerSteamID, verifyPartnerSteamID string |
| 210 | database.DB.QueryRow("SELECT steam_id FROM users WHERE steam_id = $1", record.PartnerID).Scan(&verifyPartnerSteamID) | 214 | if convertedHostSteamID == user.(models.User).SteamID { |
| 211 | if verifyPartnerSteamID != record.PartnerID { | 215 | checkPartnerSteamID = convertedPartnerSteamID |
| 216 | } else { | ||
| 217 | checkPartnerSteamID = convertedHostSteamID | ||
| 218 | } | ||
| 219 | database.DB.QueryRow("SELECT steam_id FROM users WHERE steam_id = $1", checkPartnerSteamID).Scan(&verifyPartnerSteamID) | ||
| 220 | if verifyPartnerSteamID != checkPartnerSteamID { | ||
| 212 | deleteFile(srv, hostDemoFileID) | 221 | deleteFile(srv, hostDemoFileID) |
| 213 | deleteFile(srv, partnerDemoFileID) | 222 | deleteFile(srv, partnerDemoFileID) |
| 214 | c.JSON(http.StatusOK, models.ErrorResponse("Given partner SteamID does not match an account on LPHUB.")) | 223 | c.JSON(http.StatusOK, models.ErrorResponse("Partner SteamID does not match an account on LPHUB.")) |
| 215 | return | 224 | return |
| 216 | } | 225 | } |
| 217 | sql := `INSERT INTO records_mp(map_id,score_count,score_time,host_id,partner_id,host_demo_id,partner_demo_id) | 226 | sql := `INSERT INTO records_mp(map_id,score_count,score_time,host_id,partner_id,host_demo_id,partner_demo_id) |
| 218 | VALUES($1, $2, $3, $4, $5, $6, $7)` | 227 | VALUES($1, $2, $3, $4, $5, $6, $7)` |
| 219 | _, err := tx.Exec(sql, mapID, hostDemoScoreCount, hostDemoScoreTime, strconv.FormatInt(convertSteamID64(hostSteamID), 10), strconv.FormatInt(convertSteamID64(partnerSteamID), 10), hostDemoUUID, partnerDemoUUID) | 228 | _, err := tx.Exec(sql, mapID, hostDemoScoreCount, hostDemoScoreTime, convertedHostSteamID, convertedPartnerSteamID, hostDemoUUID, partnerDemoUUID) |
| 220 | if err != nil { | 229 | if err != nil { |
| 221 | deleteFile(srv, hostDemoFileID) | 230 | deleteFile(srv, hostDemoFileID) |
| 222 | deleteFile(srv, partnerDemoFileID) | 231 | deleteFile(srv, partnerDemoFileID) |