aboutsummaryrefslogtreecommitdiff
path: root/backend/handlers
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-22 00:46:41 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-22 00:46:41 +0300
commitc2ece18ce537f709cc38b33abaf07b27aaaf90dd (patch)
tree044bcb67f0dfe2ddf5b5476ecbcb98fa5865e985 /backend/handlers
parentbackend: record get is_coop from db instead of hardcoded idiot (diff)
downloadlphub-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.go43
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]
51func CreateRecordWithDemo(c *gin.Context) { 49func 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)