aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-07-03 23:16:42 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-07-03 23:16:42 +0300
commitc071eeca829a18941fc29f4e4eb8b8f93a65b5c4 (patch)
tree1c68bda13a67ce902e01a89d4b2434e91f457339
parentfix: save uploaded demos as .dem in order for parser to work (#42) (diff)
downloadlphub-c071eeca829a18941fc29f4e4eb8b8f93a65b5c4.tar.gz
lphub-c071eeca829a18941fc29f4e4eb8b8f93a65b5c4.tar.bz2
lphub-c071eeca829a18941fc29f4e4eb8b8f93a65b5c4.zip
docs: refactor docs
Former-commit-id: 3f3833af352d8758ca509a4fe3badedd5250b1ba
Diffstat (limited to '')
-rw-r--r--backend/controllers/homeController.go26
-rw-r--r--backend/controllers/loginController.go38
-rw-r--r--backend/controllers/mapController.go68
-rw-r--r--backend/controllers/modController.go54
-rw-r--r--backend/controllers/recordController.go44
-rw-r--r--backend/controllers/userController.go74
-rw-r--r--docs/docs.go112
-rw-r--r--docs/swagger.json112
-rw-r--r--docs/swagger.yaml80
9 files changed, 304 insertions, 304 deletions
diff --git a/backend/controllers/homeController.go b/backend/controllers/homeController.go
index b5c6b60..2780e63 100644
--- a/backend/controllers/homeController.go
+++ b/backend/controllers/homeController.go
@@ -23,12 +23,12 @@ func Home(c *gin.Context) {
23 23
24// GET Rankings 24// GET Rankings
25// 25//
26// @Summary Get rankings of every player. 26// @Description Get rankings of every player.
27// @Tags rankings 27// @Tags rankings
28// @Produce json 28// @Produce json
29// @Success 200 {object} models.Response{data=models.RankingsResponse} 29// @Success 200 {object} models.Response{data=models.RankingsResponse}
30// @Failure 400 {object} models.Response 30// @Failure 400 {object} models.Response
31// @Router /demo [get] 31// @Router /rankings [get]
32func Rankings(c *gin.Context) { 32func Rankings(c *gin.Context) {
33 rows, err := database.DB.Query(`SELECT steam_id, user_name FROM users`) 33 rows, err := database.DB.Query(`SELECT steam_id, user_name FROM users`)
34 if err != nil { 34 if err != nil {
@@ -125,13 +125,13 @@ func Rankings(c *gin.Context) {
125 125
126// GET Search With Query 126// GET Search With Query
127// 127//
128// @Summary Get all user and map data matching to the query. 128// @Description Get all user and map data matching to the query.
129// @Tags search 129// @Tags search
130// @Produce json 130// @Produce json
131// @Param q query string false "Search user or map name." 131// @Param q query string false "Search user or map name."
132// @Success 200 {object} models.Response{data=models.SearchResponse} 132// @Success 200 {object} models.Response{data=models.SearchResponse}
133// @Failure 400 {object} models.Response 133// @Failure 400 {object} models.Response
134// @Router /search [get] 134// @Router /search [get]
135func SearchWithQuery(c *gin.Context) { 135func SearchWithQuery(c *gin.Context) {
136 query := c.Query("q") 136 query := c.Query("q")
137 query = strings.ToLower(query) 137 query = strings.ToLower(query)
diff --git a/backend/controllers/loginController.go b/backend/controllers/loginController.go
index b30d26e..ae6e957 100644
--- a/backend/controllers/loginController.go
+++ b/backend/controllers/loginController.go
@@ -17,13 +17,13 @@ import (
17 17
18// Login 18// Login
19// 19//
20// @Summary Get (redirect) login page for Steam auth. 20// @Description Get (redirect) login page for Steam auth.
21// @Tags login 21// @Tags login
22// @Accept json 22// @Accept json
23// @Produce json 23// @Produce json
24// @Success 200 {object} models.Response{data=models.LoginResponse} 24// @Success 200 {object} models.Response{data=models.LoginResponse}
25// @Failure 400 {object} models.Response 25// @Failure 400 {object} models.Response
26// @Router /login [get] 26// @Router /login [get]
27func Login(c *gin.Context) { 27func Login(c *gin.Context) {
28 openID := steam_go.NewOpenId(c.Request) 28 openID := steam_go.NewOpenId(c.Request)
29 switch openID.Mode() { 29 switch openID.Mode() {
@@ -95,13 +95,13 @@ func Login(c *gin.Context) {
95 95
96// GET Token 96// GET Token
97// 97//
98// @Summary Gets the token cookie value from the user. 98// @Description Gets the token cookie value from the user.
99// @Tags auth 99// @Tags auth
100// @Produce json 100// @Produce json
101// 101//
102// @Success 200 {object} models.Response{data=models.LoginResponse} 102// @Success 200 {object} models.Response{data=models.LoginResponse}
103// @Failure 404 {object} models.Response 103// @Failure 404 {object} models.Response
104// @Router /token [get] 104// @Router /token [get]
105func GetCookie(c *gin.Context) { 105func GetCookie(c *gin.Context) {
106 cookie, err := c.Cookie("token") 106 cookie, err := c.Cookie("token")
107 if err != nil { 107 if err != nil {
@@ -119,13 +119,13 @@ func GetCookie(c *gin.Context) {
119 119
120// DELETE Token 120// DELETE Token
121// 121//
122// @Summary Deletes the token cookie from the user. 122// @Description Deletes the token cookie from the user.
123// @Tags auth 123// @Tags auth
124// @Produce json 124// @Produce json
125// 125//
126// @Success 200 {object} models.Response{data=models.LoginResponse} 126// @Success 200 {object} models.Response{data=models.LoginResponse}
127// @Failure 404 {object} models.Response 127// @Failure 404 {object} models.Response
128// @Router /token [delete] 128// @Router /token [delete]
129func DeleteCookie(c *gin.Context) { 129func DeleteCookie(c *gin.Context) {
130 cookie, err := c.Cookie("token") 130 cookie, err := c.Cookie("token")
131 if err != nil { 131 if err != nil {
diff --git a/backend/controllers/mapController.go b/backend/controllers/mapController.go
index 7a26554..52b6623 100644
--- a/backend/controllers/mapController.go
+++ b/backend/controllers/mapController.go
@@ -11,13 +11,13 @@ import (
11 11
12// GET Map Summary 12// GET Map Summary
13// 13//
14// @Summary Get map summary with specified id. 14// @Description Get map summary with specified id.
15// @Tags maps 15// @Tags maps
16// @Produce json 16// @Produce json
17// @Param id path int true "Map ID" 17// @Param id path int true "Map ID"
18// @Success 200 {object} models.Response{data=models.MapSummaryResponse} 18// @Success 200 {object} models.Response{data=models.MapSummaryResponse}
19// @Failure 400 {object} models.Response 19// @Failure 400 {object} models.Response
20// @Router /maps/{id}/summary [get] 20// @Router /maps/{id}/summary [get]
21func FetchMapSummary(c *gin.Context) { 21func FetchMapSummary(c *gin.Context) {
22 id := c.Param("id") 22 id := c.Param("id")
23 response := models.MapSummaryResponse{Map: models.Map{}, Summary: models.MapSummary{Routes: []models.MapRoute{}}} 23 response := models.MapSummaryResponse{Map: models.Map{}, Summary: models.MapSummary{Routes: []models.MapRoute{}}}
@@ -69,13 +69,13 @@ func FetchMapSummary(c *gin.Context) {
69 69
70// GET Map Leaderboards 70// GET Map Leaderboards
71// 71//
72// @Summary Get map leaderboards with specified id. 72// @Description Get map leaderboards with specified id.
73// @Tags maps 73// @Tags maps
74// @Produce json 74// @Produce json
75// @Param id path int true "Map ID" 75// @Param id path int true "Map ID"
76// @Success 200 {object} models.Response{data=models.Map{data=models.MapRecords}} 76// @Success 200 {object} models.Response{data=models.Map{data=models.MapRecords}}
77// @Failure 400 {object} models.Response 77// @Failure 400 {object} models.Response
78// @Router /maps/{id}/leaderboards [get] 78// @Router /maps/{id}/leaderboards [get]
79func FetchMapLeaderboards(c *gin.Context) { 79func FetchMapLeaderboards(c *gin.Context) {
80 // TODO: make new response type 80 // TODO: make new response type
81 id := c.Param("id") 81 id := c.Param("id")
@@ -186,12 +186,12 @@ func FetchMapLeaderboards(c *gin.Context) {
186 186
187// GET Games 187// GET Games
188// 188//
189// @Summary Get games from the leaderboards. 189// @Description Get games from the leaderboards.
190// @Tags games & chapters 190// @Tags games & chapters
191// @Produce json 191// @Produce json
192// @Success 200 {object} models.Response{data=[]models.Game} 192// @Success 200 {object} models.Response{data=[]models.Game}
193// @Failure 400 {object} models.Response 193// @Failure 400 {object} models.Response
194// @Router /games [get] 194// @Router /games [get]
195func FetchGames(c *gin.Context) { 195func FetchGames(c *gin.Context) {
196 rows, err := database.DB.Query(`SELECT id, name FROM games`) 196 rows, err := database.DB.Query(`SELECT id, name FROM games`)
197 if err != nil { 197 if err != nil {
@@ -216,13 +216,13 @@ func FetchGames(c *gin.Context) {
216 216
217// GET Chapters of a Game 217// GET Chapters of a Game
218// 218//
219// @Summary Get chapters from the specified game id. 219// @Description Get chapters from the specified game id.
220// @Tags games & chapters 220// @Tags games & chapters
221// @Produce json 221// @Produce json
222// @Param id path int true "Game ID" 222// @Param id path int true "Game ID"
223// @Success 200 {object} models.Response{data=models.ChaptersResponse} 223// @Success 200 {object} models.Response{data=models.ChaptersResponse}
224// @Failure 400 {object} models.Response 224// @Failure 400 {object} models.Response
225// @Router /games/{id} [get] 225// @Router /games/{id} [get]
226func FetchChapters(c *gin.Context) { 226func FetchChapters(c *gin.Context) {
227 gameID := c.Param("id") 227 gameID := c.Param("id")
228 intID, err := strconv.Atoi(gameID) 228 intID, err := strconv.Atoi(gameID)
@@ -258,13 +258,13 @@ func FetchChapters(c *gin.Context) {
258 258
259// GET Maps of a Chapter 259// GET Maps of a Chapter
260// 260//
261// @Summary Get maps from the specified chapter id. 261// @Description Get maps from the specified chapter id.
262// @Tags games & chapters 262// @Tags games & chapters
263// @Produce json 263// @Produce json
264// @Param id path int true "Chapter ID" 264// @Param id path int true "Chapter ID"
265// @Success 200 {object} models.Response{data=models.ChapterMapsResponse} 265// @Success 200 {object} models.Response{data=models.ChapterMapsResponse}
266// @Failure 400 {object} models.Response 266// @Failure 400 {object} models.Response
267// @Router /chapters/{id} [get] 267// @Router /chapters/{id} [get]
268func FetchChapterMaps(c *gin.Context) { 268func FetchChapterMaps(c *gin.Context) {
269 chapterID := c.Param("id") 269 chapterID := c.Param("id")
270 intID, err := strconv.Atoi(chapterID) 270 intID, err := strconv.Atoi(chapterID)
diff --git a/backend/controllers/modController.go b/backend/controllers/modController.go
index f1874f7..d6dc4d4 100644
--- a/backend/controllers/modController.go
+++ b/backend/controllers/modController.go
@@ -11,15 +11,15 @@ import (
11 11
12// POST Map Summary 12// POST Map Summary
13// 13//
14// @Summary Create map summary with specified map id. 14// @Description Create map summary with specified map id.
15// @Tags maps 15// @Tags maps
16// @Produce json 16// @Produce json
17// @Param Authorization header string true "JWT Token" 17// @Param Authorization header string true "JWT Token"
18// @Param id path int true "Map ID" 18// @Param id path int true "Map ID"
19// @Param request body models.CreateMapSummaryRequest true "Body" 19// @Param request body models.CreateMapSummaryRequest true "Body"
20// @Success 200 {object} models.Response{data=models.CreateMapSummaryRequest} 20// @Success 200 {object} models.Response{data=models.CreateMapSummaryRequest}
21// @Failure 400 {object} models.Response 21// @Failure 400 {object} models.Response
22// @Router /maps/{id}/summary [post] 22// @Router /maps/{id}/summary [post]
23func CreateMapSummary(c *gin.Context) { 23func CreateMapSummary(c *gin.Context) {
24 // Check if user exists 24 // Check if user exists
25 user, exists := c.Get("user") 25 user, exists := c.Get("user")
@@ -97,15 +97,15 @@ func CreateMapSummary(c *gin.Context) {
97 97
98// PUT Map Summary 98// PUT Map Summary
99// 99//
100// @Summary Edit map summary with specified map id. 100// @Description Edit map summary with specified map id.
101// @Tags maps 101// @Tags maps
102// @Produce json 102// @Produce json
103// @Param Authorization header string true "JWT Token" 103// @Param Authorization header string true "JWT Token"
104// @Param id path int true "Map ID" 104// @Param id path int true "Map ID"
105// @Param request body models.EditMapSummaryRequest true "Body" 105// @Param request body models.EditMapSummaryRequest true "Body"
106// @Success 200 {object} models.Response{data=models.EditMapSummaryRequest} 106// @Success 200 {object} models.Response{data=models.EditMapSummaryRequest}
107// @Failure 400 {object} models.Response 107// @Failure 400 {object} models.Response
108// @Router /maps/{id}/summary [put] 108// @Router /maps/{id}/summary [put]
109func EditMapSummary(c *gin.Context) { 109func EditMapSummary(c *gin.Context) {
110 // Check if user exists 110 // Check if user exists
111 user, exists := c.Get("user") 111 user, exists := c.Get("user")
@@ -180,15 +180,15 @@ func EditMapSummary(c *gin.Context) {
180 180
181// DELETE Map Summary 181// DELETE Map Summary
182// 182//
183// @Summary Delete map summary with specified map id. 183// @Description Delete map summary with specified map id.
184// @Tags maps 184// @Tags maps
185// @Produce json 185// @Produce json
186// @Param Authorization header string true "JWT Token" 186// @Param Authorization header string true "JWT Token"
187// @Param id path int true "Map ID" 187// @Param id path int true "Map ID"
188// @Param request body models.DeleteMapSummaryRequest true "Body" 188// @Param request body models.DeleteMapSummaryRequest true "Body"
189// @Success 200 {object} models.Response{data=models.DeleteMapSummaryRequest} 189// @Success 200 {object} models.Response{data=models.DeleteMapSummaryRequest}
190// @Failure 400 {object} models.Response 190// @Failure 400 {object} models.Response
191// @Router /maps/{id}/summary [delete] 191// @Router /maps/{id}/summary [delete]
192func DeleteMapSummary(c *gin.Context) { 192func DeleteMapSummary(c *gin.Context) {
193 // Check if user exists 193 // Check if user exists
194 user, exists := c.Get("user") 194 user, exists := c.Get("user")
diff --git a/backend/controllers/recordController.go b/backend/controllers/recordController.go
index 409a2e7..af8eb63 100644
--- a/backend/controllers/recordController.go
+++ b/backend/controllers/recordController.go
@@ -21,20 +21,20 @@ import (
21 21
22// POST Record 22// POST Record
23// 23//
24// @Summary Post record with demo of a specific map. 24// @Description Post record with demo of a specific map.
25// @Tags maps 25// @Tags maps
26// @Accept mpfd 26// @Accept mpfd
27// @Produce json 27// @Produce json
28// @Param id path int true "Map ID" 28// @Param id path int true "Map ID"
29// @Param Authorization header string true "JWT Token" 29// @Param Authorization header string true "JWT Token"
30// @Param host_demo formData file true "Host Demo" 30// @Param host_demo formData file true "Host Demo"
31// @Param partner_demo formData file false "Partner Demo" 31// @Param partner_demo formData file false "Partner Demo"
32// @Param is_partner_orange formData boolean false "Is Partner Orange" 32// @Param is_partner_orange formData boolean false "Is Partner Orange"
33// @Param partner_id formData string false "Partner ID" 33// @Param partner_id formData string false "Partner ID"
34// @Success 200 {object} models.Response 34// @Success 200 {object} models.Response
35// @Failure 400 {object} models.Response 35// @Failure 400 {object} models.Response
36// @Failure 401 {object} models.Response 36// @Failure 401 {object} models.Response
37// @Router /maps/{id}/record [post] 37// @Router /maps/{id}/record [post]
38func CreateRecordWithDemo(c *gin.Context) { 38func CreateRecordWithDemo(c *gin.Context) {
39 mapId := c.Param("id") 39 mapId := c.Param("id")
40 // Check if user exists 40 // Check if user exists
@@ -189,14 +189,14 @@ func CreateRecordWithDemo(c *gin.Context) {
189 189
190// GET Demo 190// GET Demo
191// 191//
192// @Summary Get demo with specified demo uuid. 192// @Description Get demo with specified demo uuid.
193// @Tags demo 193// @Tags demo
194// @Accept json 194// @Accept json
195// @Produce octet-stream 195// @Produce octet-stream
196// @Param uuid query int true "Demo UUID" 196// @Param uuid query string true "Demo UUID"
197// @Success 200 {file} binary "Demo File" 197// @Success 200 {file} binary "Demo File"
198// @Failure 400 {object} models.Response 198// @Failure 400 {object} models.Response
199// @Router /demos [get] 199// @Router /demos [get]
200func DownloadDemoWithID(c *gin.Context) { 200func DownloadDemoWithID(c *gin.Context) {
201 uuid := c.Query("uuid") 201 uuid := c.Query("uuid")
202 var locationID string 202 var locationID string
diff --git a/backend/controllers/userController.go b/backend/controllers/userController.go
index cbce0fe..e73b1fe 100644
--- a/backend/controllers/userController.go
+++ b/backend/controllers/userController.go
@@ -13,15 +13,15 @@ import (
13 13
14// GET Profile 14// GET Profile
15// 15//
16// @Summary Get profile page of session user. 16// @Description Get profile page of session user.
17// @Tags users 17// @Tags users
18// @Accept json 18// @Accept json
19// @Produce json 19// @Produce json
20// @Param Authorization header string true "JWT Token" 20// @Param Authorization header string true "JWT Token"
21// @Success 200 {object} models.Response{data=models.ProfileResponse} 21// @Success 200 {object} models.Response{data=models.ProfileResponse}
22// @Failure 400 {object} models.Response 22// @Failure 400 {object} models.Response
23// @Failure 401 {object} models.Response 23// @Failure 401 {object} models.Response
24// @Router /profile [get] 24// @Router /profile [get]
25func Profile(c *gin.Context) { 25func Profile(c *gin.Context) {
26 // Check if user exists 26 // Check if user exists
27 user, exists := c.Get("user") 27 user, exists := c.Get("user")
@@ -100,15 +100,15 @@ func Profile(c *gin.Context) {
100 100
101// GET User 101// GET User
102// 102//
103// @Summary Get profile page of another user. 103// @Description Get profile page of another user.
104// @Tags users 104// @Tags users
105// @Accept json 105// @Accept json
106// @Produce json 106// @Produce json
107// @Param id path int true "User ID" 107// @Param id path int true "User ID"
108// @Success 200 {object} models.Response{data=models.ProfileResponse} 108// @Success 200 {object} models.Response{data=models.ProfileResponse}
109// @Failure 400 {object} models.Response 109// @Failure 400 {object} models.Response
110// @Failure 404 {object} models.Response 110// @Failure 404 {object} models.Response
111// @Router /users/{id} [get] 111// @Router /users/{id} [get]
112func FetchUser(c *gin.Context) { 112func FetchUser(c *gin.Context) {
113 id := c.Param("id") 113 id := c.Param("id")
114 // Check if id is all numbers and 17 length 114 // Check if id is all numbers and 17 length
@@ -202,15 +202,15 @@ func FetchUser(c *gin.Context) {
202 202
203// PUT Profile 203// PUT Profile
204// 204//
205// @Summary Update profile page of session user. 205// @Description Update profile page of session user.
206// @Tags users 206// @Tags users
207// @Accept json 207// @Accept json
208// @Produce json 208// @Produce json
209// @Param Authorization header string true "JWT Token" 209// @Param Authorization header string true "JWT Token"
210// @Success 200 {object} models.Response{data=models.ProfileResponse} 210// @Success 200 {object} models.Response{data=models.ProfileResponse}
211// @Failure 400 {object} models.Response 211// @Failure 400 {object} models.Response
212// @Failure 401 {object} models.Response 212// @Failure 401 {object} models.Response
213// @Router /profile [post] 213// @Router /profile [post]
214func UpdateUser(c *gin.Context) { 214func UpdateUser(c *gin.Context) {
215 // Check if user exists 215 // Check if user exists
216 user, exists := c.Get("user") 216 user, exists := c.Get("user")
@@ -245,16 +245,16 @@ func UpdateUser(c *gin.Context) {
245 245
246// PUT Profile/CountryCode 246// PUT Profile/CountryCode
247// 247//
248// @Summary Update country code of session user. 248// @Description Update country code of session user.
249// @Tags users 249// @Tags users
250// @Accept json 250// @Accept json
251// @Produce json 251// @Produce json
252// @Param Authorization header string true "JWT Token" 252// @Param Authorization header string true "JWT Token"
253// @Param country_code query string true "Country Code [XX]" 253// @Param country_code query string true "Country Code [XX]"
254// @Success 200 {object} models.Response 254// @Success 200 {object} models.Response
255// @Failure 400 {object} models.Response 255// @Failure 400 {object} models.Response
256// @Failure 401 {object} models.Response 256// @Failure 401 {object} models.Response
257// @Router /profile [put] 257// @Router /profile [put]
258func UpdateCountryCode(c *gin.Context) { 258func UpdateCountryCode(c *gin.Context) {
259 // Check if user exists 259 // Check if user exists
260 user, exists := c.Get("user") 260 user, exists := c.Get("user")
diff --git a/docs/docs.go b/docs/docs.go
index bb14382..57984f4 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -22,13 +22,13 @@ const docTemplate = `{
22 "paths": { 22 "paths": {
23 "/chapters/{id}": { 23 "/chapters/{id}": {
24 "get": { 24 "get": {
25 "description": "Get maps from the specified chapter id.",
25 "produces": [ 26 "produces": [
26 "application/json" 27 "application/json"
27 ], 28 ],
28 "tags": [ 29 "tags": [
29 "games \u0026 chapters" 30 "games \u0026 chapters"
30 ], 31 ],
31 "summary": "Get maps from the specified chapter id.",
32 "parameters": [ 32 "parameters": [
33 { 33 {
34 "type": "integer", 34 "type": "integer",
@@ -66,45 +66,9 @@ const docTemplate = `{
66 } 66 }
67 } 67 }
68 }, 68 },
69 "/demo": {
70 "get": {
71 "produces": [
72 "application/json"
73 ],
74 "tags": [
75 "rankings"
76 ],
77 "summary": "Get rankings of every player.",
78 "responses": {
79 "200": {
80 "description": "OK",
81 "schema": {
82 "allOf": [
83 {
84 "$ref": "#/definitions/models.Response"
85 },
86 {
87 "type": "object",
88 "properties": {
89 "data": {
90 "$ref": "#/definitions/models.RankingsResponse"
91 }
92 }
93 }
94 ]
95 }
96 },
97 "400": {
98 "description": "Bad Request",
99 "schema": {
100 "$ref": "#/definitions/models.Response"
101 }
102 }
103 }
104 }
105 },
106 "/demos": { 69 "/demos": {
107 "get": { 70 "get": {
71 "description": "Get demo with specified demo uuid.",
108 "consumes": [ 72 "consumes": [
109 "application/json" 73 "application/json"
110 ], 74 ],
@@ -114,10 +78,9 @@ const docTemplate = `{
114 "tags": [ 78 "tags": [
115 "demo" 79 "demo"
116 ], 80 ],
117 "summary": "Get demo with specified demo uuid.",
118 "parameters": [ 81 "parameters": [
119 { 82 {
120 "type": "integer", 83 "type": "string",
121 "description": "Demo UUID", 84 "description": "Demo UUID",
122 "name": "uuid", 85 "name": "uuid",
123 "in": "query", 86 "in": "query",
@@ -142,13 +105,13 @@ const docTemplate = `{
142 }, 105 },
143 "/games": { 106 "/games": {
144 "get": { 107 "get": {
108 "description": "Get games from the leaderboards.",
145 "produces": [ 109 "produces": [
146 "application/json" 110 "application/json"
147 ], 111 ],
148 "tags": [ 112 "tags": [
149 "games \u0026 chapters" 113 "games \u0026 chapters"
150 ], 114 ],
151 "summary": "Get games from the leaderboards.",
152 "responses": { 115 "responses": {
153 "200": { 116 "200": {
154 "description": "OK", 117 "description": "OK",
@@ -182,13 +145,13 @@ const docTemplate = `{
182 }, 145 },
183 "/games/{id}": { 146 "/games/{id}": {
184 "get": { 147 "get": {
148 "description": "Get chapters from the specified game id.",
185 "produces": [ 149 "produces": [
186 "application/json" 150 "application/json"
187 ], 151 ],
188 "tags": [ 152 "tags": [
189 "games \u0026 chapters" 153 "games \u0026 chapters"
190 ], 154 ],
191 "summary": "Get chapters from the specified game id.",
192 "parameters": [ 155 "parameters": [
193 { 156 {
194 "type": "integer", 157 "type": "integer",
@@ -228,6 +191,7 @@ const docTemplate = `{
228 }, 191 },
229 "/login": { 192 "/login": {
230 "get": { 193 "get": {
194 "description": "Get (redirect) login page for Steam auth.",
231 "consumes": [ 195 "consumes": [
232 "application/json" 196 "application/json"
233 ], 197 ],
@@ -237,7 +201,6 @@ const docTemplate = `{
237 "tags": [ 201 "tags": [
238 "login" 202 "login"
239 ], 203 ],
240 "summary": "Get (redirect) login page for Steam auth.",
241 "responses": { 204 "responses": {
242 "200": { 205 "200": {
243 "description": "OK", 206 "description": "OK",
@@ -268,13 +231,13 @@ const docTemplate = `{
268 }, 231 },
269 "/maps/{id}/leaderboards": { 232 "/maps/{id}/leaderboards": {
270 "get": { 233 "get": {
234 "description": "Get map leaderboards with specified id.",
271 "produces": [ 235 "produces": [
272 "application/json" 236 "application/json"
273 ], 237 ],
274 "tags": [ 238 "tags": [
275 "maps" 239 "maps"
276 ], 240 ],
277 "summary": "Get map leaderboards with specified id.",
278 "parameters": [ 241 "parameters": [
279 { 242 {
280 "type": "integer", 243 "type": "integer",
@@ -326,6 +289,7 @@ const docTemplate = `{
326 }, 289 },
327 "/maps/{id}/record": { 290 "/maps/{id}/record": {
328 "post": { 291 "post": {
292 "description": "Post record with demo of a specific map.",
329 "consumes": [ 293 "consumes": [
330 "multipart/form-data" 294 "multipart/form-data"
331 ], 295 ],
@@ -335,7 +299,6 @@ const docTemplate = `{
335 "tags": [ 299 "tags": [
336 "maps" 300 "maps"
337 ], 301 ],
338 "summary": "Post record with demo of a specific map.",
339 "parameters": [ 302 "parameters": [
340 { 303 {
341 "type": "integer", 304 "type": "integer",
@@ -401,13 +364,13 @@ const docTemplate = `{
401 }, 364 },
402 "/maps/{id}/summary": { 365 "/maps/{id}/summary": {
403 "get": { 366 "get": {
367 "description": "Get map summary with specified id.",
404 "produces": [ 368 "produces": [
405 "application/json" 369 "application/json"
406 ], 370 ],
407 "tags": [ 371 "tags": [
408 "maps" 372 "maps"
409 ], 373 ],
410 "summary": "Get map summary with specified id.",
411 "parameters": [ 374 "parameters": [
412 { 375 {
413 "type": "integer", 376 "type": "integer",
@@ -445,13 +408,13 @@ const docTemplate = `{
445 } 408 }
446 }, 409 },
447 "put": { 410 "put": {
411 "description": "Edit map summary with specified map id.",
448 "produces": [ 412 "produces": [
449 "application/json" 413 "application/json"
450 ], 414 ],
451 "tags": [ 415 "tags": [
452 "maps" 416 "maps"
453 ], 417 ],
454 "summary": "Edit map summary with specified map id.",
455 "parameters": [ 418 "parameters": [
456 { 419 {
457 "type": "string", 420 "type": "string",
@@ -505,13 +468,13 @@ const docTemplate = `{
505 } 468 }
506 }, 469 },
507 "post": { 470 "post": {
471 "description": "Create map summary with specified map id.",
508 "produces": [ 472 "produces": [
509 "application/json" 473 "application/json"
510 ], 474 ],
511 "tags": [ 475 "tags": [
512 "maps" 476 "maps"
513 ], 477 ],
514 "summary": "Create map summary with specified map id.",
515 "parameters": [ 478 "parameters": [
516 { 479 {
517 "type": "string", 480 "type": "string",
@@ -565,13 +528,13 @@ const docTemplate = `{
565 } 528 }
566 }, 529 },
567 "delete": { 530 "delete": {
531 "description": "Delete map summary with specified map id.",
568 "produces": [ 532 "produces": [
569 "application/json" 533 "application/json"
570 ], 534 ],
571 "tags": [ 535 "tags": [
572 "maps" 536 "maps"
573 ], 537 ],
574 "summary": "Delete map summary with specified map id.",
575 "parameters": [ 538 "parameters": [
576 { 539 {
577 "type": "string", 540 "type": "string",
@@ -627,6 +590,7 @@ const docTemplate = `{
627 }, 590 },
628 "/profile": { 591 "/profile": {
629 "get": { 592 "get": {
593 "description": "Get profile page of session user.",
630 "consumes": [ 594 "consumes": [
631 "application/json" 595 "application/json"
632 ], 596 ],
@@ -636,7 +600,6 @@ const docTemplate = `{
636 "tags": [ 600 "tags": [
637 "users" 601 "users"
638 ], 602 ],
639 "summary": "Get profile page of session user.",
640 "parameters": [ 603 "parameters": [
641 { 604 {
642 "type": "string", 605 "type": "string",
@@ -680,6 +643,7 @@ const docTemplate = `{
680 } 643 }
681 }, 644 },
682 "put": { 645 "put": {
646 "description": "Update country code of session user.",
683 "consumes": [ 647 "consumes": [
684 "application/json" 648 "application/json"
685 ], 649 ],
@@ -689,7 +653,6 @@ const docTemplate = `{
689 "tags": [ 653 "tags": [
690 "users" 654 "users"
691 ], 655 ],
692 "summary": "Update country code of session user.",
693 "parameters": [ 656 "parameters": [
694 { 657 {
695 "type": "string", 658 "type": "string",
@@ -728,6 +691,7 @@ const docTemplate = `{
728 } 691 }
729 }, 692 },
730 "post": { 693 "post": {
694 "description": "Update profile page of session user.",
731 "consumes": [ 695 "consumes": [
732 "application/json" 696 "application/json"
733 ], 697 ],
@@ -737,7 +701,6 @@ const docTemplate = `{
737 "tags": [ 701 "tags": [
738 "users" 702 "users"
739 ], 703 ],
740 "summary": "Update profile page of session user.",
741 "parameters": [ 704 "parameters": [
742 { 705 {
743 "type": "string", 706 "type": "string",
@@ -781,15 +744,52 @@ const docTemplate = `{
781 } 744 }
782 } 745 }
783 }, 746 },
747 "/rankings": {
748 "get": {
749 "description": "Get rankings of every player.",
750 "produces": [
751 "application/json"
752 ],
753 "tags": [
754 "rankings"
755 ],
756 "responses": {
757 "200": {
758 "description": "OK",
759 "schema": {
760 "allOf": [
761 {
762 "$ref": "#/definitions/models.Response"
763 },
764 {
765 "type": "object",
766 "properties": {
767 "data": {
768 "$ref": "#/definitions/models.RankingsResponse"
769 }
770 }
771 }
772 ]
773 }
774 },
775 "400": {
776 "description": "Bad Request",
777 "schema": {
778 "$ref": "#/definitions/models.Response"
779 }
780 }
781 }
782 }
783 },
784 "/search": { 784 "/search": {
785 "get": { 785 "get": {
786 "description": "Get all user and map data matching to the query.",
786 "produces": [ 787 "produces": [
787 "application/json" 788 "application/json"
788 ], 789 ],
789 "tags": [ 790 "tags": [
790 "search" 791 "search"
791 ], 792 ],
792 "summary": "Get all user and map data matching to the query.",
793 "parameters": [ 793 "parameters": [
794 { 794 {
795 "type": "string", 795 "type": "string",
@@ -828,13 +828,13 @@ const docTemplate = `{
828 }, 828 },
829 "/token": { 829 "/token": {
830 "get": { 830 "get": {
831 "description": "Gets the token cookie value from the user.",
831 "produces": [ 832 "produces": [
832 "application/json" 833 "application/json"
833 ], 834 ],
834 "tags": [ 835 "tags": [
835 "auth" 836 "auth"
836 ], 837 ],
837 "summary": "Gets the token cookie value from the user.",
838 "responses": { 838 "responses": {
839 "200": { 839 "200": {
840 "description": "OK", 840 "description": "OK",
@@ -863,13 +863,13 @@ const docTemplate = `{
863 } 863 }
864 }, 864 },
865 "delete": { 865 "delete": {
866 "description": "Deletes the token cookie from the user.",
866 "produces": [ 867 "produces": [
867 "application/json" 868 "application/json"
868 ], 869 ],
869 "tags": [ 870 "tags": [
870 "auth" 871 "auth"
871 ], 872 ],
872 "summary": "Deletes the token cookie from the user.",
873 "responses": { 873 "responses": {
874 "200": { 874 "200": {
875 "description": "OK", 875 "description": "OK",
@@ -900,6 +900,7 @@ const docTemplate = `{
900 }, 900 },
901 "/users/{id}": { 901 "/users/{id}": {
902 "get": { 902 "get": {
903 "description": "Get profile page of another user.",
903 "consumes": [ 904 "consumes": [
904 "application/json" 905 "application/json"
905 ], 906 ],
@@ -909,7 +910,6 @@ const docTemplate = `{
909 "tags": [ 910 "tags": [
910 "users" 911 "users"
911 ], 912 ],
912 "summary": "Get profile page of another user.",
913 "parameters": [ 913 "parameters": [
914 { 914 {
915 "type": "integer", 915 "type": "integer",
diff --git a/docs/swagger.json b/docs/swagger.json
index 3530d2c..ef422ab 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -15,13 +15,13 @@
15 "paths": { 15 "paths": {
16 "/chapters/{id}": { 16 "/chapters/{id}": {
17 "get": { 17 "get": {
18 "description": "Get maps from the specified chapter id.",
18 "produces": [ 19 "produces": [
19 "application/json" 20 "application/json"
20 ], 21 ],
21 "tags": [ 22 "tags": [
22 "games \u0026 chapters" 23 "games \u0026 chapters"
23 ], 24 ],
24 "summary": "Get maps from the specified chapter id.",
25 "parameters": [ 25 "parameters": [
26 { 26 {
27 "type": "integer", 27 "type": "integer",
@@ -59,45 +59,9 @@
59 } 59 }
60 } 60 }
61 }, 61 },
62 "/demo": {
63 "get": {
64 "produces": [
65 "application/json"
66 ],
67 "tags": [
68 "rankings"
69 ],
70 "summary": "Get rankings of every player.",
71 "responses": {
72 "200": {
73 "description": "OK",
74 "schema": {
75 "allOf": [
76 {
77 "$ref": "#/definitions/models.Response"
78 },
79 {
80 "type": "object",
81 "properties": {
82 "data": {
83 "$ref": "#/definitions/models.RankingsResponse"
84 }
85 }
86 }
87 ]
88 }
89 },
90 "400": {
91 "description": "Bad Request",
92 "schema": {
93 "$ref": "#/definitions/models.Response"
94 }
95 }
96 }
97 }
98 },
99 "/demos": { 62 "/demos": {
100 "get": { 63 "get": {
64 "description": "Get demo with specified demo uuid.",
101 "consumes": [ 65 "consumes": [
102 "application/json" 66 "application/json"
103 ], 67 ],
@@ -107,10 +71,9 @@
107 "tags": [ 71 "tags": [
108 "demo" 72 "demo"
109 ], 73 ],
110 "summary": "Get demo with specified demo uuid.",
111 "parameters": [ 74 "parameters": [
112 { 75 {
113 "type": "integer", 76 "type": "string",
114 "description": "Demo UUID", 77 "description": "Demo UUID",
115 "name": "uuid", 78 "name": "uuid",
116 "in": "query", 79 "in": "query",
@@ -135,13 +98,13 @@
135 }, 98 },
136 "/games": { 99 "/games": {
137 "get": { 100 "get": {
101 "description": "Get games from the leaderboards.",
138 "produces": [ 102 "produces": [
139 "application/json" 103 "application/json"
140 ], 104 ],
141 "tags": [ 105 "tags": [
142 "games \u0026 chapters" 106 "games \u0026 chapters"
143 ], 107 ],
144 "summary": "Get games from the leaderboards.",
145 "responses": { 108 "responses": {
146 "200": { 109 "200": {
147 "description": "OK", 110 "description": "OK",
@@ -175,13 +138,13 @@
175 }, 138 },
176 "/games/{id}": { 139 "/games/{id}": {
177 "get": { 140 "get": {
141 "description": "Get chapters from the specified game id.",
178 "produces": [ 142 "produces": [
179 "application/json" 143 "application/json"
180 ], 144 ],
181 "tags": [ 145 "tags": [
182 "games \u0026 chapters" 146 "games \u0026 chapters"
183 ], 147 ],
184 "summary": "Get chapters from the specified game id.",
185 "parameters": [ 148 "parameters": [
186 { 149 {
187 "type": "integer", 150 "type": "integer",
@@ -221,6 +184,7 @@
221 }, 184 },
222 "/login": { 185 "/login": {
223 "get": { 186 "get": {
187 "description": "Get (redirect) login page for Steam auth.",
224 "consumes": [ 188 "consumes": [
225 "application/json" 189 "application/json"
226 ], 190 ],
@@ -230,7 +194,6 @@
230 "tags": [ 194 "tags": [
231 "login" 195 "login"
232 ], 196 ],
233 "summary": "Get (redirect) login page for Steam auth.",
234 "responses": { 197 "responses": {
235 "200": { 198 "200": {
236 "description": "OK", 199 "description": "OK",
@@ -261,13 +224,13 @@
261 }, 224 },
262 "/maps/{id}/leaderboards": { 225 "/maps/{id}/leaderboards": {
263 "get": { 226 "get": {
227 "description": "Get map leaderboards with specified id.",
264 "produces": [ 228 "produces": [
265 "application/json" 229 "application/json"
266 ], 230 ],
267 "tags": [ 231 "tags": [
268 "maps" 232 "maps"
269 ], 233 ],
270 "summary": "Get map leaderboards with specified id.",
271 "parameters": [ 234 "parameters": [
272 { 235 {
273 "type": "integer", 236 "type": "integer",
@@ -319,6 +282,7 @@
319 }, 282 },
320 "/maps/{id}/record": { 283 "/maps/{id}/record": {
321 "post": { 284 "post": {
285 "description": "Post record with demo of a specific map.",
322 "consumes": [ 286 "consumes": [
323 "multipart/form-data" 287 "multipart/form-data"
324 ], 288 ],
@@ -328,7 +292,6 @@
328 "tags": [ 292 "tags": [
329 "maps" 293 "maps"
330 ], 294 ],
331 "summary": "Post record with demo of a specific map.",
332 "parameters": [ 295 "parameters": [
333 { 296 {
334 "type": "integer", 297 "type": "integer",
@@ -394,13 +357,13 @@
394 }, 357 },
395 "/maps/{id}/summary": { 358 "/maps/{id}/summary": {
396 "get": { 359 "get": {
360 "description": "Get map summary with specified id.",
397 "produces": [ 361 "produces": [
398 "application/json" 362 "application/json"
399 ], 363 ],
400 "tags": [ 364 "tags": [
401 "maps" 365 "maps"
402 ], 366 ],
403 "summary": "Get map summary with specified id.",
404 "parameters": [ 367 "parameters": [
405 { 368 {
406 "type": "integer", 369 "type": "integer",
@@ -438,13 +401,13 @@
438 } 401 }
439 }, 402 },
440 "put": { 403 "put": {
404 "description": "Edit map summary with specified map id.",
441 "produces": [ 405 "produces": [
442 "application/json" 406 "application/json"
443 ], 407 ],
444 "tags": [ 408 "tags": [
445 "maps" 409 "maps"
446 ], 410 ],
447 "summary": "Edit map summary with specified map id.",
448 "parameters": [ 411 "parameters": [
449 { 412 {
450 "type": "string", 413 "type": "string",
@@ -498,13 +461,13 @@
498 } 461 }
499 }, 462 },
500 "post": { 463 "post": {
464 "description": "Create map summary with specified map id.",
501 "produces": [ 465 "produces": [
502 "application/json" 466 "application/json"
503 ], 467 ],
504 "tags": [ 468 "tags": [
505 "maps" 469 "maps"
506 ], 470 ],
507 "summary": "Create map summary with specified map id.",
508 "parameters": [ 471 "parameters": [
509 { 472 {
510 "type": "string", 473 "type": "string",
@@ -558,13 +521,13 @@
558 } 521 }
559 }, 522 },
560 "delete": { 523 "delete": {
524 "description": "Delete map summary with specified map id.",
561 "produces": [ 525 "produces": [
562 "application/json" 526 "application/json"
563 ], 527 ],
564 "tags": [ 528 "tags": [
565 "maps" 529 "maps"
566 ], 530 ],
567 "summary": "Delete map summary with specified map id.",
568 "parameters": [ 531 "parameters": [
569 { 532 {
570 "type": "string", 533 "type": "string",
@@ -620,6 +583,7 @@
620 }, 583 },
621 "/profile": { 584 "/profile": {
622 "get": { 585 "get": {
586 "description": "Get profile page of session user.",
623 "consumes": [ 587 "consumes": [
624 "application/json" 588 "application/json"
625 ], 589 ],
@@ -629,7 +593,6 @@
629 "tags": [ 593 "tags": [
630 "users" 594 "users"
631 ], 595 ],
632 "summary": "Get profile page of session user.",
633 "parameters": [ 596 "parameters": [
634 { 597 {
635 "type": "string", 598 "type": "string",
@@ -673,6 +636,7 @@
673 } 636 }
674 }, 637 },
675 "put": { 638 "put": {
639 "description": "Update country code of session user.",
676 "consumes": [ 640 "consumes": [
677 "application/json" 641 "application/json"
678 ], 642 ],
@@ -682,7 +646,6 @@
682 "tags": [ 646 "tags": [
683 "users" 647 "users"
684 ], 648 ],
685 "summary": "Update country code of session user.",
686 "parameters": [ 649 "parameters": [
687 { 650 {
688 "type": "string", 651 "type": "string",
@@ -721,6 +684,7 @@
721 } 684 }
722 }, 685 },
723 "post": { 686 "post": {
687 "description": "Update profile page of session user.",
724 "consumes": [ 688 "consumes": [
725 "application/json" 689 "application/json"
726 ], 690 ],
@@ -730,7 +694,6 @@
730 "tags": [ 694 "tags": [
731 "users" 695 "users"
732 ], 696 ],
733 "summary": "Update profile page of session user.",
734 "parameters": [ 697 "parameters": [
735 { 698 {
736 "type": "string", 699 "type": "string",
@@ -774,15 +737,52 @@
774 } 737 }
775 } 738 }
776 }, 739 },
740 "/rankings": {
741 "get": {
742 "description": "Get rankings of every player.",
743 "produces": [
744 "application/json"
745 ],
746 "tags": [
747 "rankings"
748 ],
749 "responses": {
750 "200": {
751 "description": "OK",
752 "schema": {
753 "allOf": [
754 {
755 "$ref": "#/definitions/models.Response"
756 },
757 {
758 "type": "object",
759 "properties": {
760 "data": {
761 "$ref": "#/definitions/models.RankingsResponse"
762 }
763 }
764 }
765 ]
766 }
767 },
768 "400": {
769 "description": "Bad Request",
770 "schema": {
771 "$ref": "#/definitions/models.Response"
772 }
773 }
774 }
775 }
776 },
777 "/search": { 777 "/search": {
778 "get": { 778 "get": {
779 "description": "Get all user and map data matching to the query.",
779 "produces": [ 780 "produces": [
780 "application/json" 781 "application/json"
781 ], 782 ],
782 "tags": [ 783 "tags": [
783 "search" 784 "search"
784 ], 785 ],
785 "summary": "Get all user and map data matching to the query.",
786 "parameters": [ 786 "parameters": [
787 { 787 {
788 "type": "string", 788 "type": "string",
@@ -821,13 +821,13 @@
821 }, 821 },
822 "/token": { 822 "/token": {
823 "get": { 823 "get": {
824 "description": "Gets the token cookie value from the user.",
824 "produces": [ 825 "produces": [
825 "application/json" 826 "application/json"
826 ], 827 ],
827 "tags": [ 828 "tags": [
828 "auth" 829 "auth"
829 ], 830 ],
830 "summary": "Gets the token cookie value from the user.",
831 "responses": { 831 "responses": {
832 "200": { 832 "200": {
833 "description": "OK", 833 "description": "OK",
@@ -856,13 +856,13 @@
856 } 856 }
857 }, 857 },
858 "delete": { 858 "delete": {
859 "description": "Deletes the token cookie from the user.",
859 "produces": [ 860 "produces": [
860 "application/json" 861 "application/json"
861 ], 862 ],
862 "tags": [ 863 "tags": [
863 "auth" 864 "auth"
864 ], 865 ],
865 "summary": "Deletes the token cookie from the user.",
866 "responses": { 866 "responses": {
867 "200": { 867 "200": {
868 "description": "OK", 868 "description": "OK",
@@ -893,6 +893,7 @@
893 }, 893 },
894 "/users/{id}": { 894 "/users/{id}": {
895 "get": { 895 "get": {
896 "description": "Get profile page of another user.",
896 "consumes": [ 897 "consumes": [
897 "application/json" 898 "application/json"
898 ], 899 ],
@@ -902,7 +903,6 @@
902 "tags": [ 903 "tags": [
903 "users" 904 "users"
904 ], 905 ],
905 "summary": "Get profile page of another user.",
906 "parameters": [ 906 "parameters": [
907 { 907 {
908 "type": "integer", 908 "type": "integer",
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index d4420e2..2fed413 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -242,6 +242,7 @@ info:
242paths: 242paths:
243 /chapters/{id}: 243 /chapters/{id}:
244 get: 244 get:
245 description: Get maps from the specified chapter id.
245 parameters: 246 parameters:
246 - description: Chapter ID 247 - description: Chapter ID
247 in: path 248 in: path
@@ -264,40 +265,19 @@ paths:
264 description: Bad Request 265 description: Bad Request
265 schema: 266 schema:
266 $ref: '#/definitions/models.Response' 267 $ref: '#/definitions/models.Response'
267 summary: Get maps from the specified chapter id.
268 tags: 268 tags:
269 - games & chapters 269 - games & chapters
270 /demo:
271 get:
272 produces:
273 - application/json
274 responses:
275 "200":
276 description: OK
277 schema:
278 allOf:
279 - $ref: '#/definitions/models.Response'
280 - properties:
281 data:
282 $ref: '#/definitions/models.RankingsResponse'
283 type: object
284 "400":
285 description: Bad Request
286 schema:
287 $ref: '#/definitions/models.Response'
288 summary: Get rankings of every player.
289 tags:
290 - rankings
291 /demos: 270 /demos:
292 get: 271 get:
293 consumes: 272 consumes:
294 - application/json 273 - application/json
274 description: Get demo with specified demo uuid.
295 parameters: 275 parameters:
296 - description: Demo UUID 276 - description: Demo UUID
297 in: query 277 in: query
298 name: uuid 278 name: uuid
299 required: true 279 required: true
300 type: integer 280 type: string
301 produces: 281 produces:
302 - application/octet-stream 282 - application/octet-stream
303 responses: 283 responses:
@@ -309,11 +289,11 @@ paths:
309 description: Bad Request 289 description: Bad Request
310 schema: 290 schema:
311 $ref: '#/definitions/models.Response' 291 $ref: '#/definitions/models.Response'
312 summary: Get demo with specified demo uuid.
313 tags: 292 tags:
314 - demo 293 - demo
315 /games: 294 /games:
316 get: 295 get:
296 description: Get games from the leaderboards.
317 produces: 297 produces:
318 - application/json 298 - application/json
319 responses: 299 responses:
@@ -332,11 +312,11 @@ paths:
332 description: Bad Request 312 description: Bad Request
333 schema: 313 schema:
334 $ref: '#/definitions/models.Response' 314 $ref: '#/definitions/models.Response'
335 summary: Get games from the leaderboards.
336 tags: 315 tags:
337 - games & chapters 316 - games & chapters
338 /games/{id}: 317 /games/{id}:
339 get: 318 get:
319 description: Get chapters from the specified game id.
340 parameters: 320 parameters:
341 - description: Game ID 321 - description: Game ID
342 in: path 322 in: path
@@ -359,13 +339,13 @@ paths:
359 description: Bad Request 339 description: Bad Request
360 schema: 340 schema:
361 $ref: '#/definitions/models.Response' 341 $ref: '#/definitions/models.Response'
362 summary: Get chapters from the specified game id.
363 tags: 342 tags:
364 - games & chapters 343 - games & chapters
365 /login: 344 /login:
366 get: 345 get:
367 consumes: 346 consumes:
368 - application/json 347 - application/json
348 description: Get (redirect) login page for Steam auth.
369 produces: 349 produces:
370 - application/json 350 - application/json
371 responses: 351 responses:
@@ -382,11 +362,11 @@ paths:
382 description: Bad Request 362 description: Bad Request
383 schema: 363 schema:
384 $ref: '#/definitions/models.Response' 364 $ref: '#/definitions/models.Response'
385 summary: Get (redirect) login page for Steam auth.
386 tags: 365 tags:
387 - login 366 - login
388 /maps/{id}/leaderboards: 367 /maps/{id}/leaderboards:
389 get: 368 get:
369 description: Get map leaderboards with specified id.
390 parameters: 370 parameters:
391 - description: Map ID 371 - description: Map ID
392 in: path 372 in: path
@@ -414,13 +394,13 @@ paths:
414 description: Bad Request 394 description: Bad Request
415 schema: 395 schema:
416 $ref: '#/definitions/models.Response' 396 $ref: '#/definitions/models.Response'
417 summary: Get map leaderboards with specified id.
418 tags: 397 tags:
419 - maps 398 - maps
420 /maps/{id}/record: 399 /maps/{id}/record:
421 post: 400 post:
422 consumes: 401 consumes:
423 - multipart/form-data 402 - multipart/form-data
403 description: Post record with demo of a specific map.
424 parameters: 404 parameters:
425 - description: Map ID 405 - description: Map ID
426 in: path 406 in: path
@@ -464,11 +444,11 @@ paths:
464 description: Unauthorized 444 description: Unauthorized
465 schema: 445 schema:
466 $ref: '#/definitions/models.Response' 446 $ref: '#/definitions/models.Response'
467 summary: Post record with demo of a specific map.
468 tags: 447 tags:
469 - maps 448 - maps
470 /maps/{id}/summary: 449 /maps/{id}/summary:
471 delete: 450 delete:
451 description: Delete map summary with specified map id.
472 parameters: 452 parameters:
473 - description: JWT Token 453 - description: JWT Token
474 in: header 454 in: header
@@ -502,10 +482,10 @@ paths:
502 description: Bad Request 482 description: Bad Request
503 schema: 483 schema:
504 $ref: '#/definitions/models.Response' 484 $ref: '#/definitions/models.Response'
505 summary: Delete map summary with specified map id.
506 tags: 485 tags:
507 - maps 486 - maps
508 get: 487 get:
488 description: Get map summary with specified id.
509 parameters: 489 parameters:
510 - description: Map ID 490 - description: Map ID
511 in: path 491 in: path
@@ -528,10 +508,10 @@ paths:
528 description: Bad Request 508 description: Bad Request
529 schema: 509 schema:
530 $ref: '#/definitions/models.Response' 510 $ref: '#/definitions/models.Response'
531 summary: Get map summary with specified id.
532 tags: 511 tags:
533 - maps 512 - maps
534 post: 513 post:
514 description: Create map summary with specified map id.
535 parameters: 515 parameters:
536 - description: JWT Token 516 - description: JWT Token
537 in: header 517 in: header
@@ -565,10 +545,10 @@ paths:
565 description: Bad Request 545 description: Bad Request
566 schema: 546 schema:
567 $ref: '#/definitions/models.Response' 547 $ref: '#/definitions/models.Response'
568 summary: Create map summary with specified map id.
569 tags: 548 tags:
570 - maps 549 - maps
571 put: 550 put:
551 description: Edit map summary with specified map id.
572 parameters: 552 parameters:
573 - description: JWT Token 553 - description: JWT Token
574 in: header 554 in: header
@@ -602,13 +582,13 @@ paths:
602 description: Bad Request 582 description: Bad Request
603 schema: 583 schema:
604 $ref: '#/definitions/models.Response' 584 $ref: '#/definitions/models.Response'
605 summary: Edit map summary with specified map id.
606 tags: 585 tags:
607 - maps 586 - maps
608 /profile: 587 /profile:
609 get: 588 get:
610 consumes: 589 consumes:
611 - application/json 590 - application/json
591 description: Get profile page of session user.
612 parameters: 592 parameters:
613 - description: JWT Token 593 - description: JWT Token
614 in: header 594 in: header
@@ -635,12 +615,12 @@ paths:
635 description: Unauthorized 615 description: Unauthorized
636 schema: 616 schema:
637 $ref: '#/definitions/models.Response' 617 $ref: '#/definitions/models.Response'
638 summary: Get profile page of session user.
639 tags: 618 tags:
640 - users 619 - users
641 post: 620 post:
642 consumes: 621 consumes:
643 - application/json 622 - application/json
623 description: Update profile page of session user.
644 parameters: 624 parameters:
645 - description: JWT Token 625 - description: JWT Token
646 in: header 626 in: header
@@ -667,12 +647,12 @@ paths:
667 description: Unauthorized 647 description: Unauthorized
668 schema: 648 schema:
669 $ref: '#/definitions/models.Response' 649 $ref: '#/definitions/models.Response'
670 summary: Update profile page of session user.
671 tags: 650 tags:
672 - users 651 - users
673 put: 652 put:
674 consumes: 653 consumes:
675 - application/json 654 - application/json
655 description: Update country code of session user.
676 parameters: 656 parameters:
677 - description: JWT Token 657 - description: JWT Token
678 in: header 658 in: header
@@ -699,11 +679,32 @@ paths:
699 description: Unauthorized 679 description: Unauthorized
700 schema: 680 schema:
701 $ref: '#/definitions/models.Response' 681 $ref: '#/definitions/models.Response'
702 summary: Update country code of session user.
703 tags: 682 tags:
704 - users 683 - users
684 /rankings:
685 get:
686 description: Get rankings of every player.
687 produces:
688 - application/json
689 responses:
690 "200":
691 description: OK
692 schema:
693 allOf:
694 - $ref: '#/definitions/models.Response'
695 - properties:
696 data:
697 $ref: '#/definitions/models.RankingsResponse'
698 type: object
699 "400":
700 description: Bad Request
701 schema:
702 $ref: '#/definitions/models.Response'
703 tags:
704 - rankings
705 /search: 705 /search:
706 get: 706 get:
707 description: Get all user and map data matching to the query.
707 parameters: 708 parameters:
708 - description: Search user or map name. 709 - description: Search user or map name.
709 in: query 710 in: query
@@ -725,11 +726,11 @@ paths:
725 description: Bad Request 726 description: Bad Request
726 schema: 727 schema:
727 $ref: '#/definitions/models.Response' 728 $ref: '#/definitions/models.Response'
728 summary: Get all user and map data matching to the query.
729 tags: 729 tags:
730 - search 730 - search
731 /token: 731 /token:
732 delete: 732 delete:
733 description: Deletes the token cookie from the user.
733 produces: 734 produces:
734 - application/json 735 - application/json
735 responses: 736 responses:
@@ -746,10 +747,10 @@ paths:
746 description: Not Found 747 description: Not Found
747 schema: 748 schema:
748 $ref: '#/definitions/models.Response' 749 $ref: '#/definitions/models.Response'
749 summary: Deletes the token cookie from the user.
750 tags: 750 tags:
751 - auth 751 - auth
752 get: 752 get:
753 description: Gets the token cookie value from the user.
753 produces: 754 produces:
754 - application/json 755 - application/json
755 responses: 756 responses:
@@ -766,13 +767,13 @@ paths:
766 description: Not Found 767 description: Not Found
767 schema: 768 schema:
768 $ref: '#/definitions/models.Response' 769 $ref: '#/definitions/models.Response'
769 summary: Gets the token cookie value from the user.
770 tags: 770 tags:
771 - auth 771 - auth
772 /users/{id}: 772 /users/{id}:
773 get: 773 get:
774 consumes: 774 consumes:
775 - application/json 775 - application/json
776 description: Get profile page of another user.
776 parameters: 777 parameters:
777 - description: User ID 778 - description: User ID
778 in: path 779 in: path
@@ -799,7 +800,6 @@ paths:
799 description: Not Found 800 description: Not Found
800 schema: 801 schema:
801 $ref: '#/definitions/models.Response' 802 $ref: '#/definitions/models.Response'
802 summary: Get profile page of another user.
803 tags: 803 tags:
804 - users 804 - users
805swagger: "2.0" 805swagger: "2.0"