diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/docs/docs.go | 2 | ||||
| -rw-r--r-- | backend/docs/index.html | 2 | ||||
| -rw-r--r-- | backend/docs/swagger.json | 2 | ||||
| -rw-r--r-- | backend/docs/swagger.yaml | 2 | ||||
| -rw-r--r-- | backend/handlers/record.go | 2 | ||||
| -rw-r--r-- | backend/handlers/user.go | 54 | ||||
| -rw-r--r-- | backend/main.go | 4 |
7 files changed, 34 insertions, 34 deletions
diff --git a/backend/docs/docs.go b/backend/docs/docs.go index 5327961..71bd68e 100644 --- a/backend/docs/docs.go +++ b/backend/docs/docs.go | |||
| @@ -2218,7 +2218,7 @@ const docTemplate = `{ | |||
| 2218 | // SwaggerInfo holds exported Swagger Info so clients can modify it | 2218 | // SwaggerInfo holds exported Swagger Info so clients can modify it |
| 2219 | var SwaggerInfo = &swag.Spec{ | 2219 | var SwaggerInfo = &swag.Spec{ |
| 2220 | Version: "1.0", | 2220 | Version: "1.0", |
| 2221 | Host: "lp.ardapektezol.com", | 2221 | Host: "lp.pektezol.dev", |
| 2222 | BasePath: "/api/v1", | 2222 | BasePath: "/api/v1", |
| 2223 | Schemes: []string{}, | 2223 | Schemes: []string{}, |
| 2224 | Title: "Least Portals Hub", | 2224 | Title: "Least Portals Hub", |
diff --git a/backend/docs/index.html b/backend/docs/index.html index 8d12274..997b7d6 100644 --- a/backend/docs/index.html +++ b/backend/docs/index.html | |||
| @@ -17,7 +17,7 @@ | |||
| 17 | <script> | 17 | <script> |
| 18 | window.onload = () => { | 18 | window.onload = () => { |
| 19 | window.ui = SwaggerUIBundle({ | 19 | window.ui = SwaggerUIBundle({ |
| 20 | url: 'https://lp.ardapektezol.com/swagger.json', | 20 | url: '/swagger.json', |
| 21 | dom_id: '#swagger-ui', | 21 | dom_id: '#swagger-ui', |
| 22 | }); | 22 | }); |
| 23 | }; | 23 | }; |
diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json index 94a0213..879f35f 100644 --- a/backend/docs/swagger.json +++ b/backend/docs/swagger.json | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | }, | 10 | }, |
| 11 | "version": "1.0" | 11 | "version": "1.0" |
| 12 | }, | 12 | }, |
| 13 | "host": "lp.ardapektezol.com", | 13 | "host": "lp.pektezol.dev", |
| 14 | "basePath": "/api/v1", | 14 | "basePath": "/api/v1", |
| 15 | "paths": { | 15 | "paths": { |
| 16 | "/chapters/{chapterid}": { | 16 | "/chapters/{chapterid}": { |
diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml index 26d28b1..2dee421 100644 --- a/backend/docs/swagger.yaml +++ b/backend/docs/swagger.yaml | |||
| @@ -545,7 +545,7 @@ definitions: | |||
| 545 | user_name: | 545 | user_name: |
| 546 | type: string | 546 | type: string |
| 547 | type: object | 547 | type: object |
| 548 | host: lp.ardapektezol.com | 548 | host: lp.pektezol.dev |
| 549 | info: | 549 | info: |
| 550 | contact: {} | 550 | contact: {} |
| 551 | description: Backend API endpoints for Least Portals Hub. | 551 | description: Backend API endpoints for Least Portals Hub. |
diff --git a/backend/handlers/record.go b/backend/handlers/record.go index c720823..e43cc61 100644 --- a/backend/handlers/record.go +++ b/backend/handlers/record.go | |||
| @@ -204,7 +204,7 @@ func CreateRecordWithDemo(c *gin.Context) { | |||
| 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))) | 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 | 205 | // return |
| 206 | // } | 206 | // } |
| 207 | if convertedHostSteamID != user.(models.User).SteamID || convertedPartnerSteamID != user.(models.User).SteamID { | 207 | if convertedHostSteamID != user.(models.User).SteamID && convertedPartnerSteamID != user.(models.User).SteamID { |
| 208 | deleteFile(srv, hostDemoFileID) | 208 | deleteFile(srv, hostDemoFileID) |
| 209 | deleteFile(srv, partnerDemoFileID) | 209 | deleteFile(srv, partnerDemoFileID) |
| 210 | c.JSON(http.StatusOK, models.ErrorResponse("You are permitted to only upload your own runs!")) | 210 | c.JSON(http.StatusOK, models.ErrorResponse("You are permitted to only upload your own runs!")) |
diff --git a/backend/handlers/user.go b/backend/handlers/user.go index 17a7819..dc058c8 100644 --- a/backend/handlers/user.go +++ b/backend/handlers/user.go | |||
| @@ -98,19 +98,19 @@ func Profile(c *gin.Context) { | |||
| 98 | } | 98 | } |
| 99 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal | 99 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal |
| 100 | // Get user completion count | 100 | // Get user completion count |
| 101 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) | 101 | sql = `SELECT 'records_sp' AS table_name, COUNT(*) FROM ( |
| 102 | FROM records_sp sp JOIN ( | 102 | SELECT sp.map_id FROM records_sp sp JOIN ( |
| 103 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 103 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 104 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 104 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count |
| 105 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count | 105 | WHERE sp.user_id = $1 AND sp.is_deleted = false GROUP BY sp.map_id |
| 106 | WHERE sp.user_id = $1 AND sp.is_deleted = false | 106 | ) AS unique_maps |
| 107 | UNION ALL | 107 | UNION ALL |
| 108 | SELECT 'records_mp' AS table_name, COUNT(mp.id) | 108 | SELECT 'records_mp' AS table_name, COUNT(*) FROM ( |
| 109 | FROM public.records_mp mp JOIN ( | 109 | SELECT mp.map_id FROM records_mp mp JOIN ( |
| 110 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 110 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 111 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 111 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count |
| 112 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count | 112 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false GROUP BY mp.map_id |
| 113 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false` | 113 | ) AS unique_maps` |
| 114 | rows, err := database.DB.Query(sql, user.(models.User).SteamID) | 114 | rows, err := database.DB.Query(sql, user.(models.User).SteamID) |
| 115 | if err != nil { | 115 | if err != nil { |
| 116 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 116 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| @@ -350,7 +350,7 @@ func Profile(c *gin.Context) { | |||
| 350 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) | 350 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) |
| 351 | } | 351 | } |
| 352 | // Get multiplayer records | 352 | // Get multiplayer records |
| 353 | sql = `SELECT mp.id, m.game_id, m.chapter_id, mp.map_id, m."name", (SELECT mh.score_count FROM map_history mh WHERE mh.map_id = mp.map_id ORDER BY mh.score_count ASC LIMIT 1) AS wr_count, mp.score_count, mp.score_time, CASE WHEN host_id = $1 THEN mp.host_demo_id WHEN partner_id = $1 THEN mp.partner_demo_id END demo_id, mp.record_date | 353 | sql = `SELECT mp.id, m.game_id, m.chapter_id, mp.map_id, m."name", (SELECT mh.score_count FROM map_history mh WHERE mh.map_id = mp.map_id AND mh.category_id = 1 ORDER BY mh.score_count ASC LIMIT 1) AS wr_count, mp.score_count, mp.score_time, CASE WHEN host_id = $1 THEN mp.host_demo_id WHEN partner_id = $1 THEN mp.partner_demo_id END demo_id, mp.record_date |
| 354 | FROM records_mp mp INNER JOIN maps m ON mp.map_id = m.id WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false ORDER BY mp.map_id, mp.score_count, mp.score_time` | 354 | FROM records_mp mp INNER JOIN maps m ON mp.map_id = m.id WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false ORDER BY mp.map_id, mp.score_count, mp.score_time` |
| 355 | rows, err = database.DB.Query(sql, user.(models.User).SteamID) | 355 | rows, err = database.DB.Query(sql, user.(models.User).SteamID) |
| 356 | if err != nil { | 356 | if err != nil { |
| @@ -476,19 +476,19 @@ func FetchUser(c *gin.Context) { | |||
| 476 | } | 476 | } |
| 477 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal | 477 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal |
| 478 | // Get user completion count | 478 | // Get user completion count |
| 479 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) | 479 | sql = `SELECT 'records_sp' AS table_name, COUNT(*) FROM ( |
| 480 | FROM records_sp sp JOIN ( | 480 | SELECT sp.map_id FROM records_sp sp JOIN ( |
| 481 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 481 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 482 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 482 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count |
| 483 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count | 483 | WHERE sp.user_id = $1 AND sp.is_deleted = false GROUP BY sp.map_id |
| 484 | WHERE sp.user_id = $1 AND sp.is_deleted = false | 484 | ) AS unique_maps |
| 485 | UNION ALL | 485 | UNION ALL |
| 486 | SELECT 'records_mp' AS table_name, COUNT(mp.id) | 486 | SELECT 'records_mp' AS table_name, COUNT(*) FROM ( |
| 487 | FROM public.records_mp mp JOIN ( | 487 | SELECT mp.map_id FROM records_mp mp JOIN ( |
| 488 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 488 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 489 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 489 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count |
| 490 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count | 490 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false GROUP BY mp.map_id |
| 491 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false` | 491 | ) AS unique_maps` |
| 492 | rows, err = database.DB.Query(sql, user.SteamID) | 492 | rows, err = database.DB.Query(sql, user.SteamID) |
| 493 | if err != nil { | 493 | if err != nil { |
| 494 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 494 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| @@ -672,7 +672,7 @@ func FetchUser(c *gin.Context) { | |||
| 672 | } | 672 | } |
| 673 | records := []ProfileRecords{} | 673 | records := []ProfileRecords{} |
| 674 | // Get singleplayer records | 674 | // Get singleplayer records |
| 675 | sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mh.score_count FROM map_history mh WHERE mh.map_id = sp.map_id ORDER BY mh.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date | 675 | sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mh.score_count FROM map_history mh WHERE mh.map_id = sp.map_id AND mh.category_id = 1 ORDER BY mh.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date |
| 676 | FROM records_sp sp INNER JOIN maps m ON sp.map_id = m.id WHERE sp.user_id = $1 AND sp.is_deleted = false ORDER BY sp.map_id, sp.score_count, sp.score_time` | 676 | FROM records_sp sp INNER JOIN maps m ON sp.map_id = m.id WHERE sp.user_id = $1 AND sp.is_deleted = false ORDER BY sp.map_id, sp.score_count, sp.score_time` |
| 677 | rows, err = database.DB.Query(sql, user.SteamID) | 677 | rows, err = database.DB.Query(sql, user.SteamID) |
| 678 | if err != nil { | 678 | if err != nil { |
| @@ -728,7 +728,7 @@ func FetchUser(c *gin.Context) { | |||
| 728 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) | 728 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) |
| 729 | } | 729 | } |
| 730 | // Get multiplayer records | 730 | // Get multiplayer records |
| 731 | sql = `SELECT mp.id, m.game_id, m.chapter_id, mp.map_id, m."name", (SELECT mh.score_count FROM map_history mh WHERE mh.map_id = mp.map_id ORDER BY mh.score_count ASC LIMIT 1) AS wr_count, mp.score_count, mp.score_time, CASE WHEN host_id = $1 THEN mp.host_demo_id WHEN partner_id = $1 THEN mp.partner_demo_id END demo_id, mp.record_date | 731 | sql = `SELECT mp.id, m.game_id, m.chapter_id, mp.map_id, m."name", (SELECT mh.score_count FROM map_history mh WHERE mh.map_id = mp.map_id AND mh.category_id = 1 ORDER BY mh.score_count ASC LIMIT 1) AS wr_count, mp.score_count, mp.score_time, CASE WHEN host_id = $1 THEN mp.host_demo_id WHEN partner_id = $1 THEN mp.partner_demo_id END demo_id, mp.record_date |
| 732 | FROM records_mp mp INNER JOIN maps m ON mp.map_id = m.id WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false ORDER BY mp.map_id, mp.score_count, mp.score_time` | 732 | FROM records_mp mp INNER JOIN maps m ON mp.map_id = m.id WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false ORDER BY mp.map_id, mp.score_count, mp.score_time` |
| 733 | rows, err = database.DB.Query(sql, user.SteamID) | 733 | rows, err = database.DB.Query(sql, user.SteamID) |
| 734 | if err != nil { | 734 | if err != nil { |
diff --git a/backend/main.go b/backend/main.go index 26aa852..a1a4a20 100644 --- a/backend/main.go +++ b/backend/main.go | |||
| @@ -20,7 +20,7 @@ import ( | |||
| 20 | // @license.name GNU Affero General Public License, Version 3 | 20 | // @license.name GNU Affero General Public License, Version 3 |
| 21 | // @license.url https://www.gnu.org/licenses/agpl-3.0.html | 21 | // @license.url https://www.gnu.org/licenses/agpl-3.0.html |
| 22 | 22 | ||
| 23 | // @host lp.ardapektezol.com | 23 | // @host lp.pektezol.dev |
| 24 | // @BasePath /api/v1 | 24 | // @BasePath /api/v1 |
| 25 | func main() { | 25 | func main() { |
| 26 | err := godotenv.Load() | 26 | err := godotenv.Load() |
| @@ -47,6 +47,6 @@ func main() { | |||
| 47 | // router.NoRoute(func(c *gin.Context) { | 47 | // router.NoRoute(func(c *gin.Context) { |
| 48 | // c.File("../frontend/build/index.html") | 48 | // c.File("../frontend/build/index.html") |
| 49 | // }) | 49 | // }) |
| 50 | router.MaxMultipartMemory = 500 << 20 // 500 mb limit for demos | 50 | router.MaxMultipartMemory = 250 << 20 // 250 mb limit for demos |
| 51 | router.Run(fmt.Sprintf(":%s", os.Getenv("PORT"))) | 51 | router.Run(fmt.Sprintf(":%s", os.Getenv("PORT"))) |
| 52 | } | 52 | } |