From df6f6cb5ff8957be8f01d58d60857da2c094a3d9 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 12 Sep 2024 00:25:15 +0300 Subject: refactor: unofficial rankings implementation --- backend/docs/docs.go | 90 +++++++++++++++++++++++++++++++++++++++++++++-- backend/docs/swagger.json | 90 +++++++++++++++++++++++++++++++++++++++++++++-- backend/docs/swagger.yaml | 57 ++++++++++++++++++++++++++++-- 3 files changed, 231 insertions(+), 6 deletions(-) (limited to 'backend/docs') diff --git a/backend/docs/docs.go b/backend/docs/docs.go index f652a1e..c4b2801 100644 --- a/backend/docs/docs.go +++ b/backend/docs/docs.go @@ -1171,9 +1171,9 @@ const docTemplate = `{ } } }, - "/rankings": { + "/rankings/lphub": { "get": { - "description": "Get rankings of every player.", + "description": "Get rankings of every player from LPHUB.", "produces": [ "application/json" ], @@ -1202,6 +1202,37 @@ const docTemplate = `{ } } }, + "/rankings/steam": { + "get": { + "description": "Get rankings of every player from Steam.", + "produces": [ + "application/json" + ], + "tags": [ + "rankings" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/models.Response" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/handlers.RankingsSteamResponse" + } + } + } + ] + } + } + } + } + }, "/search": { "get": { "description": "Get all user and map data matching to the query.", @@ -1789,6 +1820,29 @@ const docTemplate = `{ } } }, + "handlers.RankingsSteamResponse": { + "type": "object", + "properties": { + "rankings_multiplayer": { + "type": "array", + "items": { + "$ref": "#/definitions/handlers.SteamUserRanking" + } + }, + "rankings_overall": { + "type": "array", + "items": { + "$ref": "#/definitions/handlers.SteamUserRanking" + } + }, + "rankings_singleplayer": { + "type": "array", + "items": { + "$ref": "#/definitions/handlers.SteamUserRanking" + } + } + } + }, "handlers.RecordResponse": { "type": "object", "properties": { @@ -1854,6 +1908,38 @@ const docTemplate = `{ } } }, + "handlers.SteamUserRanking": { + "type": "object", + "properties": { + "avatar_link": { + "type": "string" + }, + "mp_rank": { + "type": "integer" + }, + "mp_score": { + "type": "integer" + }, + "overall_rank": { + "type": "integer" + }, + "overall_score": { + "type": "integer" + }, + "sp_rank": { + "type": "integer" + }, + "sp_score": { + "type": "integer" + }, + "steam_id": { + "type": "string" + }, + "user_name": { + "type": "string" + } + } + }, "models.Category": { "type": "object", "properties": { diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json index 6de5978..7613d2c 100644 --- a/backend/docs/swagger.json +++ b/backend/docs/swagger.json @@ -1165,9 +1165,9 @@ } } }, - "/rankings": { + "/rankings/lphub": { "get": { - "description": "Get rankings of every player.", + "description": "Get rankings of every player from LPHUB.", "produces": [ "application/json" ], @@ -1196,6 +1196,37 @@ } } }, + "/rankings/steam": { + "get": { + "description": "Get rankings of every player from Steam.", + "produces": [ + "application/json" + ], + "tags": [ + "rankings" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/models.Response" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/handlers.RankingsSteamResponse" + } + } + } + ] + } + } + } + } + }, "/search": { "get": { "description": "Get all user and map data matching to the query.", @@ -1783,6 +1814,29 @@ } } }, + "handlers.RankingsSteamResponse": { + "type": "object", + "properties": { + "rankings_multiplayer": { + "type": "array", + "items": { + "$ref": "#/definitions/handlers.SteamUserRanking" + } + }, + "rankings_overall": { + "type": "array", + "items": { + "$ref": "#/definitions/handlers.SteamUserRanking" + } + }, + "rankings_singleplayer": { + "type": "array", + "items": { + "$ref": "#/definitions/handlers.SteamUserRanking" + } + } + } + }, "handlers.RecordResponse": { "type": "object", "properties": { @@ -1848,6 +1902,38 @@ } } }, + "handlers.SteamUserRanking": { + "type": "object", + "properties": { + "avatar_link": { + "type": "string" + }, + "mp_rank": { + "type": "integer" + }, + "mp_score": { + "type": "integer" + }, + "overall_rank": { + "type": "integer" + }, + "overall_score": { + "type": "integer" + }, + "sp_rank": { + "type": "integer" + }, + "sp_score": { + "type": "integer" + }, + "steam_id": { + "type": "string" + }, + "user_name": { + "type": "string" + } + } + }, "models.Category": { "type": "object", "properties": { diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml index 853b3b9..22651e3 100644 --- a/backend/docs/swagger.yaml +++ b/backend/docs/swagger.yaml @@ -283,6 +283,21 @@ definitions: $ref: '#/definitions/models.UserRanking' type: array type: object + handlers.RankingsSteamResponse: + properties: + rankings_multiplayer: + items: + $ref: '#/definitions/handlers.SteamUserRanking' + type: array + rankings_overall: + items: + $ref: '#/definitions/handlers.SteamUserRanking' + type: array + rankings_singleplayer: + items: + $ref: '#/definitions/handlers.SteamUserRanking' + type: array + type: object handlers.RecordResponse: properties: score_count: @@ -325,6 +340,27 @@ definitions: $ref: '#/definitions/models.UserShortWithAvatar' type: array type: object + handlers.SteamUserRanking: + properties: + avatar_link: + type: string + mp_rank: + type: integer + mp_score: + type: integer + overall_rank: + type: integer + overall_score: + type: integer + sp_rank: + type: integer + sp_score: + type: integer + steam_id: + type: string + user_name: + type: string + type: object models.Category: properties: id: @@ -1216,9 +1252,9 @@ paths: $ref: '#/definitions/models.Response' tags: - users - /rankings: + /rankings/lphub: get: - description: Get rankings of every player. + description: Get rankings of every player from LPHUB. produces: - application/json responses: @@ -1233,6 +1269,23 @@ paths: type: object tags: - rankings + /rankings/steam: + get: + description: Get rankings of every player from Steam. + produces: + - application/json + responses: + "200": + description: OK + schema: + allOf: + - $ref: '#/definitions/models.Response' + - properties: + data: + $ref: '#/definitions/handlers.RankingsSteamResponse' + type: object + tags: + - rankings /search: get: description: Get all user and map data matching to the query. -- cgit v1.2.3