diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2024-07-04 19:02:11 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-04 19:02:11 +0300 |
| commit | 368f6dd461d768e835124afdd5aa0228d9e0ba0b (patch) | |
| tree | 4b78a4571f6cc4b7e0f553d90f52c016c9d2b8e1 /backend/handlers/user.go | |
| parent | fix: fetchmaps image sql (diff) | |
| download | lphub-368f6dd461d768e835124afdd5aa0228d9e0ba0b.tar.gz lphub-368f6dd461d768e835124afdd5aa0228d9e0ba0b.tar.bz2 lphub-368f6dd461d768e835124afdd5aa0228d9e0ba0b.zip | |
feat: update map tables db schema (#157)
Diffstat (limited to 'backend/handlers/user.go')
| -rw-r--r-- | backend/handlers/user.go | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/backend/handlers/user.go b/backend/handlers/user.go index 88bbe45..8febf3a 100644 --- a/backend/handlers/user.go +++ b/backend/handlers/user.go | |||
| @@ -99,15 +99,15 @@ func Profile(c *gin.Context) { | |||
| 99 | // Get user completion count | 99 | // Get user completion count |
| 100 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) | 100 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) |
| 101 | FROM records_sp sp JOIN ( | 101 | FROM records_sp sp JOIN ( |
| 102 | SELECT mr.map_id, MIN(mr.score_count) AS min_score_count | 102 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count |
| 103 | FROM public.map_routes mr WHERE mr.category_id = 1 GROUP BY mr.map_id | 103 | 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 | 104 | ) 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 | 105 | WHERE sp.user_id = $1 AND sp.is_deleted = false |
| 106 | UNION ALL | 106 | UNION ALL |
| 107 | SELECT 'records_mp' AS table_name, COUNT(mp.id) | 107 | SELECT 'records_mp' AS table_name, COUNT(mp.id) |
| 108 | FROM public.records_mp mp JOIN ( | 108 | FROM public.records_mp mp JOIN ( |
| 109 | SELECT mr.map_id, MIN(mr.score_count) AS min_score_count | 109 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count |
| 110 | FROM public.map_routes mr WHERE mr.category_id = 1 GROUP BY mr.map_id | 110 | 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 | 111 | ) 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` | 112 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false` |
| 113 | rows, err := database.DB.Query(sql, user.(models.User).SteamID) | 113 | rows, err := database.DB.Query(sql, user.(models.User).SteamID) |
| @@ -293,7 +293,7 @@ func Profile(c *gin.Context) { | |||
| 293 | } | 293 | } |
| 294 | records := []ProfileRecords{} | 294 | records := []ProfileRecords{} |
| 295 | // Get singleplayer records | 295 | // Get singleplayer records |
| 296 | sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = sp.map_id ORDER BY mr.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date | 296 | 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 |
| 297 | 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` | 297 | 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` |
| 298 | rows, err = database.DB.Query(sql, user.(models.User).SteamID) | 298 | rows, err = database.DB.Query(sql, user.(models.User).SteamID) |
| 299 | if err != nil { | 299 | if err != nil { |
| @@ -347,7 +347,7 @@ func Profile(c *gin.Context) { | |||
| 347 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) | 347 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) |
| 348 | } | 348 | } |
| 349 | // Get multiplayer records | 349 | // Get multiplayer records |
| 350 | sql = `SELECT mp.id, m.game_id, m.chapter_id, mp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = mp.map_id ORDER BY mr.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 | 350 | 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 |
| 351 | 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` | 351 | 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` |
| 352 | rows, err = database.DB.Query(sql, user.(models.User).SteamID) | 352 | rows, err = database.DB.Query(sql, user.(models.User).SteamID) |
| 353 | if err != nil { | 353 | if err != nil { |
| @@ -473,15 +473,15 @@ func FetchUser(c *gin.Context) { | |||
| 473 | // Get user completion count | 473 | // Get user completion count |
| 474 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) | 474 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) |
| 475 | FROM records_sp sp JOIN ( | 475 | FROM records_sp sp JOIN ( |
| 476 | SELECT mr.map_id, MIN(mr.score_count) AS min_score_count | 476 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count |
| 477 | FROM public.map_routes mr WHERE mr.category_id = 1 GROUP BY mr.map_id | 477 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 478 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count | 478 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count |
| 479 | WHERE sp.user_id = $1 AND sp.is_deleted = false | 479 | WHERE sp.user_id = $1 AND sp.is_deleted = false |
| 480 | UNION ALL | 480 | UNION ALL |
| 481 | SELECT 'records_mp' AS table_name, COUNT(mp.id) | 481 | SELECT 'records_mp' AS table_name, COUNT(mp.id) |
| 482 | FROM public.records_mp mp JOIN ( | 482 | FROM public.records_mp mp JOIN ( |
| 483 | SELECT mr.map_id, MIN(mr.score_count) AS min_score_count | 483 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count |
| 484 | FROM public.map_routes mr WHERE mr.category_id = 1 GROUP BY mr.map_id | 484 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 485 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count | 485 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count |
| 486 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false` | 486 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false` |
| 487 | rows, err = database.DB.Query(sql, user.SteamID) | 487 | rows, err = database.DB.Query(sql, user.SteamID) |
| @@ -667,7 +667,7 @@ func FetchUser(c *gin.Context) { | |||
| 667 | } | 667 | } |
| 668 | records := []ProfileRecords{} | 668 | records := []ProfileRecords{} |
| 669 | // Get singleplayer records | 669 | // Get singleplayer records |
| 670 | sql = `SELECT sp.id, m.game_id, m.chapter_id, sp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = sp.map_id ORDER BY mr.score_count ASC LIMIT 1) AS wr_count, sp.score_count, sp.score_time, sp.demo_id, sp.record_date | 670 | 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 |
| 671 | 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` | 671 | 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` |
| 672 | rows, err = database.DB.Query(sql, user.SteamID) | 672 | rows, err = database.DB.Query(sql, user.SteamID) |
| 673 | if err != nil { | 673 | if err != nil { |
| @@ -721,7 +721,7 @@ func FetchUser(c *gin.Context) { | |||
| 721 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) | 721 | records[len(records)-1].Scores = append(records[len(records)-1].Scores, score) |
| 722 | } | 722 | } |
| 723 | // Get multiplayer records | 723 | // Get multiplayer records |
| 724 | sql = `SELECT mp.id, m.game_id, m.chapter_id, mp.map_id, m."name", (SELECT mr.score_count FROM map_routes mr WHERE mr.map_id = mp.map_id ORDER BY mr.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 | 724 | 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 |
| 725 | 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` | 725 | 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` |
| 726 | rows, err = database.DB.Query(sql, user.SteamID) | 726 | rows, err = database.DB.Query(sql, user.SteamID) |
| 727 | if err != nil { | 727 | if err != nil { |