From c2ece18ce537f709cc38b33abaf07b27aaaf90dd Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Tue, 22 Oct 2024 00:46:41 +0300 Subject: backend: no need for partner_id for record submission --- backend/docs/docs.go | 16 ++-------------- backend/docs/swagger.json | 16 ++-------------- backend/docs/swagger.yaml | 12 ++---------- backend/handlers/record.go | 43 ++++++++++++++++++++++++++----------------- 4 files changed, 32 insertions(+), 55 deletions(-) diff --git a/backend/docs/docs.go b/backend/docs/docs.go index c4b2801..5327961 100644 --- a/backend/docs/docs.go +++ b/backend/docs/docs.go @@ -771,18 +771,6 @@ const docTemplate = `{ "description": "Partner Demo", "name": "partner_demo", "in": "formData" - }, - { - "type": "boolean", - "description": "Is Partner Orange", - "name": "is_partner_orange", - "in": "formData" - }, - { - "type": "string", - "description": "Partner ID", - "name": "partner_id", - "in": "formData" } ], "responses": { @@ -2233,8 +2221,8 @@ var SwaggerInfo = &swag.Spec{ Host: "lp.ardapektezol.com", BasePath: "/api/v1", Schemes: []string{}, - Title: "Least Portals Database API", - Description: "Backend API endpoints for the Least Portals Database.", + Title: "Least Portals Hub", + Description: "Backend API endpoints for Least Portals Hub.", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json index 7613d2c..94a0213 100644 --- a/backend/docs/swagger.json +++ b/backend/docs/swagger.json @@ -1,8 +1,8 @@ { "swagger": "2.0", "info": { - "description": "Backend API endpoints for the Least Portals Database.", - "title": "Least Portals Database API", + "description": "Backend API endpoints for Least Portals Hub.", + "title": "Least Portals Hub", "contact": {}, "license": { "name": "GNU Affero General Public License, Version 3", @@ -765,18 +765,6 @@ "description": "Partner Demo", "name": "partner_demo", "in": "formData" - }, - { - "type": "boolean", - "description": "Is Partner Orange", - "name": "is_partner_orange", - "in": "formData" - }, - { - "type": "string", - "description": "Partner ID", - "name": "partner_id", - "in": "formData" } ], "responses": { diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml index 22651e3..26d28b1 100644 --- a/backend/docs/swagger.yaml +++ b/backend/docs/swagger.yaml @@ -548,11 +548,11 @@ definitions: host: lp.ardapektezol.com info: contact: {} - description: Backend API endpoints for the Least Portals Database. + description: Backend API endpoints for Least Portals Hub. license: name: GNU Affero General Public License, Version 3 url: https://www.gnu.org/licenses/agpl-3.0.html - title: Least Portals Database API + title: Least Portals Hub version: "1.0" paths: /chapters/{chapterid}: @@ -1007,14 +1007,6 @@ paths: in: formData name: partner_demo type: file - - description: Is Partner Orange - in: formData - name: is_partner_orange - type: boolean - - description: Partner ID - in: formData - name: partner_id - type: string produces: - application/json responses: 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 { // @Param Authorization header string true "JWT Token" // @Param host_demo formData file true "Host Demo" // @Param partner_demo formData file false "Partner Demo" -// @Param is_partner_orange formData boolean false "Is Partner Orange" -// @Param partner_id formData string false "Partner ID" // @Success 200 {object} models.Response{data=RecordResponse} // @Router /maps/{mapid}/record [post] func CreateRecordWithDemo(c *gin.Context) { @@ -82,9 +80,9 @@ func CreateRecordWithDemo(c *gin.Context) { c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } - if isCoop && (record.PartnerDemo == nil || record.PartnerID == "") { + if isCoop && record.PartnerDemo == nil { CreateLog(user.(models.User).SteamID, LogTypeRecord, LogDescriptionCreateRecordInvalidRequestFail) - c.JSON(http.StatusOK, models.ErrorResponse("Invalid entry for coop record submission.")) + c.JSON(http.StatusOK, models.ErrorResponse("Missing partner demo for coop submission.")) return } // Demo files @@ -193,30 +191,41 @@ func CreateRecordWithDemo(c *gin.Context) { return } convertedHostSteamID := strconv.FormatInt(convertSteamID64(hostSteamID), 10) - if convertedHostSteamID != user.(models.User).SteamID && convertedHostSteamID != record.PartnerID { - deleteFile(srv, hostDemoFileID) - deleteFile(srv, partnerDemoFileID) - 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))) - return - } + // if convertedHostSteamID != user.(models.User).SteamID && convertedHostSteamID != record.PartnerID { + // deleteFile(srv, hostDemoFileID) + // deleteFile(srv, partnerDemoFileID) + // 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))) + // return + // } convertedPartnerSteamID := strconv.FormatInt(convertSteamID64(partnerSteamID), 10) - if convertedPartnerSteamID != record.PartnerID && convertedPartnerSteamID != user.(models.User).SteamID { + // if convertedPartnerSteamID != record.PartnerID && convertedPartnerSteamID != user.(models.User).SteamID { + // deleteFile(srv, hostDemoFileID) + // deleteFile(srv, partnerDemoFileID) + // 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))) + // return + // } + if convertedHostSteamID != user.(models.User).SteamID || convertedPartnerSteamID != user.(models.User).SteamID { deleteFile(srv, hostDemoFileID) deleteFile(srv, partnerDemoFileID) - 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))) + c.JSON(http.StatusOK, models.ErrorResponse("You are permitted to only upload your own runs!")) return } - var verifyPartnerSteamID string - database.DB.QueryRow("SELECT steam_id FROM users WHERE steam_id = $1", record.PartnerID).Scan(&verifyPartnerSteamID) - if verifyPartnerSteamID != record.PartnerID { + var checkPartnerSteamID, verifyPartnerSteamID string + if convertedHostSteamID == user.(models.User).SteamID { + checkPartnerSteamID = convertedPartnerSteamID + } else { + checkPartnerSteamID = convertedHostSteamID + } + database.DB.QueryRow("SELECT steam_id FROM users WHERE steam_id = $1", checkPartnerSteamID).Scan(&verifyPartnerSteamID) + if verifyPartnerSteamID != checkPartnerSteamID { deleteFile(srv, hostDemoFileID) deleteFile(srv, partnerDemoFileID) - c.JSON(http.StatusOK, models.ErrorResponse("Given partner SteamID does not match an account on LPHUB.")) + c.JSON(http.StatusOK, models.ErrorResponse("Partner SteamID does not match an account on LPHUB.")) return } sql := `INSERT INTO records_mp(map_id,score_count,score_time,host_id,partner_id,host_demo_id,partner_demo_id) VALUES($1, $2, $3, $4, $5, $6, $7)` - _, err := tx.Exec(sql, mapID, hostDemoScoreCount, hostDemoScoreTime, strconv.FormatInt(convertSteamID64(hostSteamID), 10), strconv.FormatInt(convertSteamID64(partnerSteamID), 10), hostDemoUUID, partnerDemoUUID) + _, err := tx.Exec(sql, mapID, hostDemoScoreCount, hostDemoScoreTime, convertedHostSteamID, convertedPartnerSteamID, hostDemoUUID, partnerDemoUUID) if err != nil { deleteFile(srv, hostDemoFileID) deleteFile(srv, partnerDemoFileID) -- cgit v1.2.3