From ca7acc2fdc6e6c8371ca5bbeeaabb02d11bb1bee Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sun, 20 Aug 2023 12:51:26 +0300 Subject: refactor: move structs around for better understanding Former-commit-id: 0030a6b0c7b228772d8e27f5722ee6de1718786b --- backend/controllers/homeController.go | 18 +- backend/controllers/loginController.go | 16 +- backend/controllers/mapController.go | 27 ++- backend/controllers/modController.go | 67 ++++--- backend/controllers/recordController.go | 20 ++- backend/controllers/userController.go | 43 +++-- backend/models/models.go | 14 ++ backend/models/requests.go | 39 ----- backend/models/responses.go | 64 ------- docs/docs.go | 300 ++++++++++++++++---------------- docs/swagger.json | 300 ++++++++++++++++---------------- docs/swagger.yaml | 216 +++++++++++------------ 12 files changed, 560 insertions(+), 564 deletions(-) delete mode 100644 backend/models/requests.go delete mode 100644 backend/models/responses.go diff --git a/backend/controllers/homeController.go b/backend/controllers/homeController.go index c94590a..d1b99cb 100644 --- a/backend/controllers/homeController.go +++ b/backend/controllers/homeController.go @@ -10,6 +10,16 @@ import ( "github.com/pektezol/leastportalshub/backend/models" ) +type SearchResponse struct { + Players []models.UserShort `json:"players"` + Maps []models.MapShort `json:"maps"` +} + +type RankingsResponse struct { + RankingsSP []models.UserRanking `json:"rankings_sp"` + RankingsMP []models.UserRanking `json:"rankings_mp"` +} + func Home(c *gin.Context) { user, exists := c.Get("user") if !exists { @@ -26,7 +36,7 @@ func Home(c *gin.Context) { // @Description Get rankings of every player. // @Tags rankings // @Produce json -// @Success 200 {object} models.Response{data=models.RankingsResponse} +// @Success 200 {object} models.Response{data=RankingsResponse} // @Failure 400 {object} models.Response // @Router /rankings [get] func Rankings(c *gin.Context) { @@ -116,7 +126,7 @@ func Rankings(c *gin.Context) { c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Successfully retrieved rankings.", - Data: models.RankingsResponse{ + Data: RankingsResponse{ RankingsSP: spRankings, RankingsMP: mpRankings, }, @@ -129,14 +139,14 @@ func Rankings(c *gin.Context) { // @Tags search // @Produce json // @Param q query string false "Search user or map name." -// @Success 200 {object} models.Response{data=models.SearchResponse} +// @Success 200 {object} models.Response{data=SearchResponse} // @Failure 400 {object} models.Response // @Router /search [get] func SearchWithQuery(c *gin.Context) { query := c.Query("q") query = strings.ToLower(query) log.Println(query) - var response models.SearchResponse + var response SearchResponse // Cache all maps for faster response var maps = []models.MapShort{ {ID: 1, Name: "Container Ride"}, diff --git a/backend/controllers/loginController.go b/backend/controllers/loginController.go index e907b22..76bf51f 100644 --- a/backend/controllers/loginController.go +++ b/backend/controllers/loginController.go @@ -15,13 +15,17 @@ import ( "github.com/solovev/steam_go" ) +type LoginResponse struct { + Token string `json:"token"` +} + // Login // // @Description Get (redirect) login page for Steam auth. // @Tags login // @Accept json // @Produce json -// @Success 200 {object} models.Response{data=models.LoginResponse} +// @Success 200 {object} models.Response{data=LoginResponse} // @Failure 400 {object} models.Response // @Router /login [get] func Login(c *gin.Context) { @@ -85,7 +89,7 @@ func Login(c *gin.Context) { // c.JSON(http.StatusOK, models.Response{ // Success: true, // Message: "Successfully generated token.", - // Data: models.LoginResponse{ + // Data: LoginResponse{ // Token: tokenString, // }, // }) @@ -99,7 +103,7 @@ func Login(c *gin.Context) { // @Tags auth // @Produce json // -// @Success 200 {object} models.Response{data=models.LoginResponse} +// @Success 200 {object} models.Response{data=LoginResponse} // @Failure 404 {object} models.Response // @Router /token [get] func GetCookie(c *gin.Context) { @@ -111,7 +115,7 @@ func GetCookie(c *gin.Context) { c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Token cookie successfully retrieved.", - Data: models.LoginResponse{ + Data: LoginResponse{ Token: cookie, }, }) @@ -123,7 +127,7 @@ func GetCookie(c *gin.Context) { // @Tags auth // @Produce json // -// @Success 200 {object} models.Response{data=models.LoginResponse} +// @Success 200 {object} models.Response{data=LoginResponse} // @Failure 404 {object} models.Response // @Router /token [delete] func DeleteCookie(c *gin.Context) { @@ -136,7 +140,7 @@ func DeleteCookie(c *gin.Context) { c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Token cookie successfully deleted.", - Data: models.LoginResponse{ + Data: LoginResponse{ Token: cookie, }, }) diff --git a/backend/controllers/mapController.go b/backend/controllers/mapController.go index ebd65dd..0a324d6 100644 --- a/backend/controllers/mapController.go +++ b/backend/controllers/mapController.go @@ -9,18 +9,33 @@ import ( "github.com/pektezol/leastportalshub/backend/models" ) +type MapSummaryResponse struct { + Map models.Map `json:"map"` + Summary models.MapSummary `json:"summary"` +} + +type ChaptersResponse struct { + Game models.Game `json:"game"` + Chapters []models.Chapter `json:"chapters"` +} + +type ChapterMapsResponse struct { + Chapter models.Chapter `json:"chapter"` + Maps []models.MapShort `json:"maps"` +} + // GET Map Summary // // @Description Get map summary with specified id. // @Tags maps // @Produce json // @Param id path int true "Map ID" -// @Success 200 {object} models.Response{data=models.MapSummaryResponse} +// @Success 200 {object} models.Response{data=MapSummaryResponse} // @Failure 400 {object} models.Response // @Router /maps/{id}/summary [get] func FetchMapSummary(c *gin.Context) { id := c.Param("id") - response := models.MapSummaryResponse{Map: models.Map{}, Summary: models.MapSummary{Routes: []models.MapRoute{}}} + response := MapSummaryResponse{Map: models.Map{}, Summary: models.MapSummary{Routes: []models.MapRoute{}}} intID, err := strconv.Atoi(id) if err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) @@ -220,7 +235,7 @@ func FetchGames(c *gin.Context) { // @Tags games & chapters // @Produce json // @Param id path int true "Game ID" -// @Success 200 {object} models.Response{data=models.ChaptersResponse} +// @Success 200 {object} models.Response{data=ChaptersResponse} // @Failure 400 {object} models.Response // @Router /games/{id} [get] func FetchChapters(c *gin.Context) { @@ -230,7 +245,7 @@ func FetchChapters(c *gin.Context) { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return } - var response models.ChaptersResponse + var response ChaptersResponse rows, err := database.DB.Query(`SELECT c.id, c.name, g.name FROM chapters c INNER JOIN games g ON c.game_id = g.id WHERE game_id = $1`, gameID) if err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) @@ -262,7 +277,7 @@ func FetchChapters(c *gin.Context) { // @Tags games & chapters // @Produce json // @Param id path int true "Chapter ID" -// @Success 200 {object} models.Response{data=models.ChapterMapsResponse} +// @Success 200 {object} models.Response{data=ChapterMapsResponse} // @Failure 400 {object} models.Response // @Router /chapters/{id} [get] func FetchChapterMaps(c *gin.Context) { @@ -272,7 +287,7 @@ func FetchChapterMaps(c *gin.Context) { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return } - var response models.ChapterMapsResponse + var response ChapterMapsResponse rows, err := database.DB.Query(`SELECT m.id, m.name, c.name FROM maps m INNER JOIN chapters c ON m.chapter_id = c.id WHERE chapter_id = $1`, chapterID) if err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) diff --git a/backend/controllers/modController.go b/backend/controllers/modController.go index e2add1f..7ce5cb4 100644 --- a/backend/controllers/modController.go +++ b/backend/controllers/modController.go @@ -3,21 +3,48 @@ package controllers import ( "net/http" "strconv" + "time" "github.com/gin-gonic/gin" "github.com/pektezol/leastportalshub/backend/database" "github.com/pektezol/leastportalshub/backend/models" ) +type CreateMapSummaryRequest struct { + CategoryID int `json:"category_id" binding:"required"` + Description string `json:"description" binding:"required"` + Showcase string `json:"showcase"` + UserName string `json:"user_name" binding:"required"` + ScoreCount *int `json:"score_count" binding:"required"` + RecordDate time.Time `json:"record_date" binding:"required"` +} + +type EditMapSummaryRequest struct { + RouteID int `json:"route_id" binding:"required"` + Description string `json:"description" binding:"required"` + Showcase string `json:"showcase"` + UserName string `json:"user_name" binding:"required"` + ScoreCount *int `json:"score_count" binding:"required"` + RecordDate time.Time `json:"record_date" binding:"required"` +} + +type DeleteMapSummaryRequest struct { + RouteID int `json:"route_id" binding:"required"` +} + +type EditMapImageRequest struct { + Image string `json:"image" binding:"required"` +} + // POST Map Summary // // @Description Create map summary with specified map id. // @Tags maps // @Produce json -// @Param Authorization header string true "JWT Token" -// @Param id path int true "Map ID" -// @Param request body models.CreateMapSummaryRequest true "Body" -// @Success 200 {object} models.Response{data=models.CreateMapSummaryRequest} +// @Param Authorization header string true "JWT Token" +// @Param id path int true "Map ID" +// @Param request body CreateMapSummaryRequest true "Body" +// @Success 200 {object} models.Response{data=CreateMapSummaryRequest} // @Failure 400 {object} models.Response // @Router /maps/{id}/summary [post] func CreateMapSummary(c *gin.Context) { @@ -44,7 +71,7 @@ func CreateMapSummary(c *gin.Context) { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return } - var request models.CreateMapSummaryRequest + var request CreateMapSummaryRequest if err := c.BindJSON(&request); err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return @@ -100,10 +127,10 @@ func CreateMapSummary(c *gin.Context) { // @Description Edit map summary with specified map id. // @Tags maps // @Produce json -// @Param Authorization header string true "JWT Token" -// @Param id path int true "Map ID" -// @Param request body models.EditMapSummaryRequest true "Body" -// @Success 200 {object} models.Response{data=models.EditMapSummaryRequest} +// @Param Authorization header string true "JWT Token" +// @Param id path int true "Map ID" +// @Param request body EditMapSummaryRequest true "Body" +// @Success 200 {object} models.Response{data=EditMapSummaryRequest} // @Failure 400 {object} models.Response // @Router /maps/{id}/summary [put] func EditMapSummary(c *gin.Context) { @@ -130,7 +157,7 @@ func EditMapSummary(c *gin.Context) { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return } - var request models.EditMapSummaryRequest + var request EditMapSummaryRequest if err := c.BindJSON(&request); err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return @@ -186,10 +213,10 @@ func EditMapSummary(c *gin.Context) { // @Description Delete map summary with specified map id. // @Tags maps // @Produce json -// @Param Authorization header string true "JWT Token" -// @Param id path int true "Map ID" -// @Param request body models.DeleteMapSummaryRequest true "Body" -// @Success 200 {object} models.Response{data=models.DeleteMapSummaryRequest} +// @Param Authorization header string true "JWT Token" +// @Param id path int true "Map ID" +// @Param request body DeleteMapSummaryRequest true "Body" +// @Success 200 {object} models.Response{data=DeleteMapSummaryRequest} // @Failure 400 {object} models.Response // @Router /maps/{id}/summary [delete] func DeleteMapSummary(c *gin.Context) { @@ -216,7 +243,7 @@ func DeleteMapSummary(c *gin.Context) { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return } - var request models.DeleteMapSummaryRequest + var request DeleteMapSummaryRequest if err := c.BindJSON(&request); err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return @@ -276,10 +303,10 @@ func DeleteMapSummary(c *gin.Context) { // @Description Edit map image with specified map id. // @Tags maps // @Produce json -// @Param Authorization header string true "JWT Token" -// @Param id path int true "Map ID" -// @Param request body models.EditMapImageRequest true "Body" -// @Success 200 {object} models.Response{data=models.EditMapImageRequest} +// @Param Authorization header string true "JWT Token" +// @Param id path int true "Map ID" +// @Param request body EditMapImageRequest true "Body" +// @Success 200 {object} models.Response{data=EditMapImageRequest} // @Failure 400 {object} models.Response // @Router /maps/{id}/image [put] func EditMapImage(c *gin.Context) { @@ -306,7 +333,7 @@ func EditMapImage(c *gin.Context) { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return } - var request models.EditMapImageRequest + var request EditMapImageRequest if err := c.BindJSON(&request); err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return diff --git a/backend/controllers/recordController.go b/backend/controllers/recordController.go index 951be41..d141fc3 100644 --- a/backend/controllers/recordController.go +++ b/backend/controllers/recordController.go @@ -19,6 +19,18 @@ import ( "google.golang.org/api/drive/v3" ) +type RecordRequest struct { + HostDemo *multipart.FileHeader `json:"host_demo" form:"host_demo" binding:"required" swaggerignore:"true"` + PartnerDemo *multipart.FileHeader `json:"partner_demo" form:"partner_demo" swaggerignore:"true"` + IsPartnerOrange bool `json:"is_partner_orange" form:"is_partner_orange"` + PartnerID string `json:"partner_id" form:"partner_id"` +} + +type RecordResponse struct { + ScoreCount int `json:"score_count"` + ScoreTime int `json:"score_time"` +} + // POST Record // // @Description Post record with demo of a specific map. @@ -31,7 +43,7 @@ import ( // @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=models.RecordResponse} +// @Success 200 {object} models.Response{data=RecordResponse} // @Failure 400 {object} models.Response // @Failure 401 {object} models.Response // @Router /maps/{id}/record [post] @@ -61,7 +73,7 @@ func CreateRecordWithDemo(c *gin.Context) { isCoop = true } // Get record request - var record models.RecordRequest + var record RecordRequest if err := c.ShouldBind(&record); err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return @@ -183,7 +195,7 @@ func CreateRecordWithDemo(c *gin.Context) { c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Successfully created record.", - Data: models.RecordResponse{ScoreCount: hostDemoScoreCount, ScoreTime: hostDemoScoreTime}, + Data: RecordResponse{ScoreCount: hostDemoScoreCount, ScoreTime: hostDemoScoreTime}, }) } @@ -253,6 +265,7 @@ func serviceAccount() *http.Client { return client } +// Create Gdrive file func createFile(service *drive.Service, name string, mimeType string, content io.Reader, parentId string) (*drive.File, error) { f := &drive.File{ MimeType: mimeType, @@ -269,6 +282,7 @@ func createFile(service *drive.Service, name string, mimeType string, content io return file, nil } +// Delete Gdrive file func deleteFile(service *drive.Service, fileId string) { service.Files.Delete(fileId) } diff --git a/backend/controllers/userController.go b/backend/controllers/userController.go index 6aa77fc..0dae155 100644 --- a/backend/controllers/userController.go +++ b/backend/controllers/userController.go @@ -11,6 +11,21 @@ import ( "github.com/pektezol/leastportalshub/backend/models" ) +type ProfileResponse struct { + Profile bool `json:"profile"` + SteamID string `json:"steam_id"` + UserName string `json:"user_name"` + AvatarLink string `json:"avatar_link"` + CountryCode string `json:"country_code"` + ScoresSP []ScoreResponse `json:"scores_sp"` + ScoresMP []ScoreResponse `json:"scores_mp"` +} + +type ScoreResponse struct { + MapID int `json:"map_id"` + Records any `json:"records"` +} + // GET Profile // // @Description Get profile page of session user. @@ -18,7 +33,7 @@ import ( // @Accept json // @Produce json // @Param Authorization header string true "JWT Token" -// @Success 200 {object} models.Response{data=models.ProfileResponse} +// @Success 200 {object} models.Response{data=ProfileResponse} // @Failure 400 {object} models.Response // @Failure 401 {object} models.Response // @Router /profile [get] @@ -30,7 +45,7 @@ func Profile(c *gin.Context) { return } // Retrieve singleplayer records - var scoresSP []models.ScoreResponse + var scoresSP []ScoreResponse sql := `SELECT id, map_id, score_count, score_time, demo_id, record_date FROM records_sp WHERE user_id = $1 ORDER BY map_id` rows, err := database.DB.Query(sql, user.(models.User).SteamID) if err != nil { @@ -50,13 +65,13 @@ func Profile(c *gin.Context) { // New map recordsSP = []models.RecordSP{} recordsSP = append(recordsSP, record) - scoresSP = append(scoresSP, models.ScoreResponse{ + scoresSP = append(scoresSP, ScoreResponse{ MapID: mapID, Records: recordsSP, }) } // Retrieve multiplayer records - var scoresMP []models.ScoreResponse + var scoresMP []ScoreResponse sql = `SELECT id, map_id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date FROM records_mp WHERE host_id = $1 OR partner_id = $2 ORDER BY map_id` rows, err = database.DB.Query(sql, user.(models.User).SteamID, user.(models.User).SteamID) @@ -77,7 +92,7 @@ func Profile(c *gin.Context) { // New map recordsMP = []models.RecordMP{} recordsMP = append(recordsMP, record) - scoresMP = append(scoresMP, models.ScoreResponse{ + scoresMP = append(scoresMP, ScoreResponse{ MapID: mapID, Records: recordsMP, }) @@ -85,7 +100,7 @@ func Profile(c *gin.Context) { c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Successfully retrieved user scores.", - Data: models.ProfileResponse{ + Data: ProfileResponse{ Profile: true, SteamID: user.(models.User).SteamID, UserName: user.(models.User).UserName, @@ -105,7 +120,7 @@ func Profile(c *gin.Context) { // @Accept json // @Produce json // @Param id path int true "User ID" -// @Success 200 {object} models.Response{data=models.ProfileResponse} +// @Success 200 {object} models.Response{data=ProfileResponse} // @Failure 400 {object} models.Response // @Failure 404 {object} models.Response // @Router /users/{id} [get] @@ -132,7 +147,7 @@ func FetchUser(c *gin.Context) { return } // Retrieve singleplayer records - var scoresSP []models.ScoreResponse + var scoresSP []ScoreResponse sql := `SELECT id, map_id, score_count, score_time, demo_id, record_date FROM records_sp WHERE user_id = $1 ORDER BY map_id` rows, err := database.DB.Query(sql, user.SteamID) if err != nil { @@ -152,13 +167,13 @@ func FetchUser(c *gin.Context) { // New map recordsSP = []models.RecordSP{} recordsSP = append(recordsSP, record) - scoresSP = append(scoresSP, models.ScoreResponse{ + scoresSP = append(scoresSP, ScoreResponse{ MapID: mapID, Records: recordsSP, }) } // Retrieve multiplayer records - var scoresMP []models.ScoreResponse + var scoresMP []ScoreResponse sql = `SELECT id, map_id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date FROM records_mp WHERE host_id = $1 OR partner_id = $2 ORDER BY map_id` rows, err = database.DB.Query(sql, user.SteamID, user.SteamID) @@ -179,7 +194,7 @@ func FetchUser(c *gin.Context) { // New map recordsMP = []models.RecordMP{} recordsMP = append(recordsMP, record) - scoresMP = append(scoresMP, models.ScoreResponse{ + scoresMP = append(scoresMP, ScoreResponse{ MapID: mapID, Records: recordsMP, }) @@ -187,7 +202,7 @@ func FetchUser(c *gin.Context) { c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Successfully retrieved user scores.", - Data: models.ProfileResponse{ + Data: ProfileResponse{ Profile: true, SteamID: user.SteamID, UserName: user.UserName, @@ -207,7 +222,7 @@ func FetchUser(c *gin.Context) { // @Accept json // @Produce json // @Param Authorization header string true "JWT Token" -// @Success 200 {object} models.Response{data=models.ProfileResponse} +// @Success 200 {object} models.Response{data=ProfileResponse} // @Failure 400 {object} models.Response // @Failure 401 {object} models.Response // @Router /profile [post] @@ -233,7 +248,7 @@ func UpdateUser(c *gin.Context) { c.JSON(http.StatusOK, models.Response{ Success: true, Message: "Successfully updated user.", - Data: models.ProfileResponse{ + Data: ProfileResponse{ Profile: true, SteamID: user.(models.User).SteamID, UserName: profile.PersonaName, diff --git a/backend/models/models.go b/backend/models/models.go index 1231cb1..e21ba6a 100644 --- a/backend/models/models.go +++ b/backend/models/models.go @@ -4,6 +4,20 @@ import ( "time" ) +type Response struct { + Success bool `json:"success"` + Message string `json:"message"` + Data any `json:"data"` +} + +func ErrorResponse(message string) Response { + return Response{ + Success: false, + Message: message, + Data: nil, + } +} + type User struct { SteamID string `json:"steam_id"` UserName string `json:"user_name"` diff --git a/backend/models/requests.go b/backend/models/requests.go deleted file mode 100644 index 0113597..0000000 --- a/backend/models/requests.go +++ /dev/null @@ -1,39 +0,0 @@ -package models - -import ( - "mime/multipart" - "time" -) - -type CreateMapSummaryRequest struct { - CategoryID int `json:"category_id" binding:"required"` - Description string `json:"description" binding:"required"` - Showcase string `json:"showcase"` - UserName string `json:"user_name" binding:"required"` - ScoreCount *int `json:"score_count" binding:"required"` - RecordDate time.Time `json:"record_date" binding:"required"` -} - -type EditMapSummaryRequest struct { - RouteID int `json:"route_id" binding:"required"` - Description string `json:"description" binding:"required"` - Showcase string `json:"showcase"` - UserName string `json:"user_name" binding:"required"` - ScoreCount *int `json:"score_count" binding:"required"` - RecordDate time.Time `json:"record_date" binding:"required"` -} - -type DeleteMapSummaryRequest struct { - RouteID int `json:"route_id" binding:"required"` -} - -type EditMapImageRequest struct { - Image string `json:"image" binding:"required"` -} - -type RecordRequest struct { - HostDemo *multipart.FileHeader `json:"host_demo" form:"host_demo" binding:"required" swaggerignore:"true"` - PartnerDemo *multipart.FileHeader `json:"partner_demo" form:"partner_demo" swaggerignore:"true"` - IsPartnerOrange bool `json:"is_partner_orange" form:"is_partner_orange"` - PartnerID string `json:"partner_id" form:"partner_id"` -} diff --git a/backend/models/responses.go b/backend/models/responses.go deleted file mode 100644 index 459911c..0000000 --- a/backend/models/responses.go +++ /dev/null @@ -1,64 +0,0 @@ -package models - -type Response struct { - Success bool `json:"success"` - Message string `json:"message"` - Data any `json:"data"` -} - -type LoginResponse struct { - Token string `json:"token"` -} - -type RankingsResponse struct { - RankingsSP []UserRanking `json:"rankings_sp"` - RankingsMP []UserRanking `json:"rankings_mp"` -} - -type ProfileResponse struct { - Profile bool `json:"profile"` - SteamID string `json:"steam_id"` - UserName string `json:"user_name"` - AvatarLink string `json:"avatar_link"` - CountryCode string `json:"country_code"` - ScoresSP []ScoreResponse `json:"scores_sp"` - ScoresMP []ScoreResponse `json:"scores_mp"` -} - -type ScoreResponse struct { - MapID int `json:"map_id"` - Records any `json:"records"` -} - -type MapSummaryResponse struct { - Map Map `json:"map"` - Summary MapSummary `json:"summary"` -} - -type SearchResponse struct { - Players []UserShort `json:"players"` - Maps []MapShort `json:"maps"` -} - -type ChaptersResponse struct { - Game Game `json:"game"` - Chapters []Chapter `json:"chapters"` -} - -type ChapterMapsResponse struct { - Chapter Chapter `json:"chapter"` - Maps []MapShort `json:"maps"` -} - -type RecordResponse struct { - ScoreCount int `json:"score_count"` - ScoreTime int `json:"score_time"` -} - -func ErrorResponse(message string) Response { - return Response{ - Success: false, - Message: message, - Data: nil, - } -} diff --git a/docs/docs.go b/docs/docs.go index 423afad..df01379 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -50,7 +50,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ChapterMapsResponse" + "$ref": "#/definitions/controllers.ChapterMapsResponse" } } } @@ -173,7 +173,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ChaptersResponse" + "$ref": "#/definitions/controllers.ChaptersResponse" } } } @@ -213,7 +213,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.LoginResponse" + "$ref": "#/definitions/controllers.LoginResponse" } } } @@ -259,7 +259,7 @@ const docTemplate = `{ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.EditMapImageRequest" + "$ref": "#/definitions/controllers.EditMapImageRequest" } } ], @@ -275,7 +275,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.EditMapImageRequest" + "$ref": "#/definitions/controllers.EditMapImageRequest" } } } @@ -414,7 +414,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.RecordResponse" + "$ref": "#/definitions/controllers.RecordResponse" } } } @@ -466,7 +466,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.MapSummaryResponse" + "$ref": "#/definitions/controllers.MapSummaryResponse" } } } @@ -510,7 +510,7 @@ const docTemplate = `{ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.EditMapSummaryRequest" + "$ref": "#/definitions/controllers.EditMapSummaryRequest" } } ], @@ -526,7 +526,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.EditMapSummaryRequest" + "$ref": "#/definitions/controllers.EditMapSummaryRequest" } } } @@ -570,7 +570,7 @@ const docTemplate = `{ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.CreateMapSummaryRequest" + "$ref": "#/definitions/controllers.CreateMapSummaryRequest" } } ], @@ -586,7 +586,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.CreateMapSummaryRequest" + "$ref": "#/definitions/controllers.CreateMapSummaryRequest" } } } @@ -630,7 +630,7 @@ const docTemplate = `{ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.DeleteMapSummaryRequest" + "$ref": "#/definitions/controllers.DeleteMapSummaryRequest" } } ], @@ -646,7 +646,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.DeleteMapSummaryRequest" + "$ref": "#/definitions/controllers.DeleteMapSummaryRequest" } } } @@ -695,7 +695,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ProfileResponse" + "$ref": "#/definitions/controllers.ProfileResponse" } } } @@ -796,7 +796,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ProfileResponse" + "$ref": "#/definitions/controllers.ProfileResponse" } } } @@ -839,7 +839,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.RankingsResponse" + "$ref": "#/definitions/controllers.RankingsResponse" } } } @@ -884,7 +884,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.SearchResponse" + "$ref": "#/definitions/controllers.SearchResponse" } } } @@ -921,7 +921,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.LoginResponse" + "$ref": "#/definitions/controllers.LoginResponse" } } } @@ -956,7 +956,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.LoginResponse" + "$ref": "#/definitions/controllers.LoginResponse" } } } @@ -1005,7 +1005,7 @@ const docTemplate = `{ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ProfileResponse" + "$ref": "#/definitions/controllers.ProfileResponse" } } } @@ -1029,29 +1029,7 @@ const docTemplate = `{ } }, "definitions": { - "models.Category": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - } - }, - "models.Chapter": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - } - }, - "models.ChapterMapsResponse": { + "controllers.ChapterMapsResponse": { "type": "object", "properties": { "chapter": { @@ -1065,7 +1043,7 @@ const docTemplate = `{ } } }, - "models.ChaptersResponse": { + "controllers.ChaptersResponse": { "type": "object", "properties": { "chapters": { @@ -1079,7 +1057,7 @@ const docTemplate = `{ } } }, - "models.CreateMapSummaryRequest": { + "controllers.CreateMapSummaryRequest": { "type": "object", "required": [ "category_id", @@ -1109,7 +1087,7 @@ const docTemplate = `{ } } }, - "models.DeleteMapSummaryRequest": { + "controllers.DeleteMapSummaryRequest": { "type": "object", "required": [ "route_id" @@ -1120,7 +1098,7 @@ const docTemplate = `{ } } }, - "models.EditMapImageRequest": { + "controllers.EditMapImageRequest": { "type": "object", "required": [ "image" @@ -1131,7 +1109,7 @@ const docTemplate = `{ } } }, - "models.EditMapSummaryRequest": { + "controllers.EditMapSummaryRequest": { "type": "object", "required": [ "description", @@ -1161,24 +1139,143 @@ const docTemplate = `{ } } }, - "models.Game": { + "controllers.LoginResponse": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + } + }, + "controllers.MapSummaryResponse": { + "type": "object", + "properties": { + "map": { + "$ref": "#/definitions/models.Map" + }, + "summary": { + "$ref": "#/definitions/models.MapSummary" + } + } + }, + "controllers.ProfileResponse": { + "type": "object", + "properties": { + "avatar_link": { + "type": "string" + }, + "country_code": { + "type": "string" + }, + "profile": { + "type": "boolean" + }, + "scores_mp": { + "type": "array", + "items": { + "$ref": "#/definitions/controllers.ScoreResponse" + } + }, + "scores_sp": { + "type": "array", + "items": { + "$ref": "#/definitions/controllers.ScoreResponse" + } + }, + "steam_id": { + "type": "string" + }, + "user_name": { + "type": "string" + } + } + }, + "controllers.RankingsResponse": { + "type": "object", + "properties": { + "rankings_mp": { + "type": "array", + "items": { + "$ref": "#/definitions/models.UserRanking" + } + }, + "rankings_sp": { + "type": "array", + "items": { + "$ref": "#/definitions/models.UserRanking" + } + } + } + }, + "controllers.RecordResponse": { + "type": "object", + "properties": { + "score_count": { + "type": "integer" + }, + "score_time": { + "type": "integer" + } + } + }, + "controllers.ScoreResponse": { + "type": "object", + "properties": { + "map_id": { + "type": "integer" + }, + "records": {} + } + }, + "controllers.SearchResponse": { + "type": "object", + "properties": { + "maps": { + "type": "array", + "items": { + "$ref": "#/definitions/models.MapShort" + } + }, + "players": { + "type": "array", + "items": { + "$ref": "#/definitions/models.UserShort" + } + } + } + }, + "models.Category": { "type": "object", "properties": { "id": { "type": "integer" }, - "is_coop": { - "type": "boolean" + "name": { + "type": "string" + } + } + }, + "models.Chapter": { + "type": "object", + "properties": { + "id": { + "type": "integer" }, "name": { "type": "string" } } }, - "models.LoginResponse": { + "models.Game": { "type": "object", "properties": { - "token": { + "id": { + "type": "integer" + }, + "is_coop": { + "type": "boolean" + }, + "name": { "type": "string" } } @@ -1271,77 +1368,6 @@ const docTemplate = `{ } } }, - "models.MapSummaryResponse": { - "type": "object", - "properties": { - "map": { - "$ref": "#/definitions/models.Map" - }, - "summary": { - "$ref": "#/definitions/models.MapSummary" - } - } - }, - "models.ProfileResponse": { - "type": "object", - "properties": { - "avatar_link": { - "type": "string" - }, - "country_code": { - "type": "string" - }, - "profile": { - "type": "boolean" - }, - "scores_mp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.ScoreResponse" - } - }, - "scores_sp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.ScoreResponse" - } - }, - "steam_id": { - "type": "string" - }, - "user_name": { - "type": "string" - } - } - }, - "models.RankingsResponse": { - "type": "object", - "properties": { - "rankings_mp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.UserRanking" - } - }, - "rankings_sp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.UserRanking" - } - } - } - }, - "models.RecordResponse": { - "type": "object", - "properties": { - "score_count": { - "type": "integer" - }, - "score_time": { - "type": "integer" - } - } - }, "models.Response": { "type": "object", "properties": { @@ -1354,32 +1380,6 @@ const docTemplate = `{ } } }, - "models.ScoreResponse": { - "type": "object", - "properties": { - "map_id": { - "type": "integer" - }, - "records": {} - } - }, - "models.SearchResponse": { - "type": "object", - "properties": { - "maps": { - "type": "array", - "items": { - "$ref": "#/definitions/models.MapShort" - } - }, - "players": { - "type": "array", - "items": { - "$ref": "#/definitions/models.UserShort" - } - } - } - }, "models.UserRanking": { "type": "object", "properties": { diff --git a/docs/swagger.json b/docs/swagger.json index 2e1a789..0f3dade 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -43,7 +43,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ChapterMapsResponse" + "$ref": "#/definitions/controllers.ChapterMapsResponse" } } } @@ -166,7 +166,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ChaptersResponse" + "$ref": "#/definitions/controllers.ChaptersResponse" } } } @@ -206,7 +206,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.LoginResponse" + "$ref": "#/definitions/controllers.LoginResponse" } } } @@ -252,7 +252,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.EditMapImageRequest" + "$ref": "#/definitions/controllers.EditMapImageRequest" } } ], @@ -268,7 +268,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.EditMapImageRequest" + "$ref": "#/definitions/controllers.EditMapImageRequest" } } } @@ -407,7 +407,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.RecordResponse" + "$ref": "#/definitions/controllers.RecordResponse" } } } @@ -459,7 +459,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.MapSummaryResponse" + "$ref": "#/definitions/controllers.MapSummaryResponse" } } } @@ -503,7 +503,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.EditMapSummaryRequest" + "$ref": "#/definitions/controllers.EditMapSummaryRequest" } } ], @@ -519,7 +519,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.EditMapSummaryRequest" + "$ref": "#/definitions/controllers.EditMapSummaryRequest" } } } @@ -563,7 +563,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.CreateMapSummaryRequest" + "$ref": "#/definitions/controllers.CreateMapSummaryRequest" } } ], @@ -579,7 +579,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.CreateMapSummaryRequest" + "$ref": "#/definitions/controllers.CreateMapSummaryRequest" } } } @@ -623,7 +623,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/models.DeleteMapSummaryRequest" + "$ref": "#/definitions/controllers.DeleteMapSummaryRequest" } } ], @@ -639,7 +639,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.DeleteMapSummaryRequest" + "$ref": "#/definitions/controllers.DeleteMapSummaryRequest" } } } @@ -688,7 +688,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ProfileResponse" + "$ref": "#/definitions/controllers.ProfileResponse" } } } @@ -789,7 +789,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ProfileResponse" + "$ref": "#/definitions/controllers.ProfileResponse" } } } @@ -832,7 +832,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.RankingsResponse" + "$ref": "#/definitions/controllers.RankingsResponse" } } } @@ -877,7 +877,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.SearchResponse" + "$ref": "#/definitions/controllers.SearchResponse" } } } @@ -914,7 +914,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.LoginResponse" + "$ref": "#/definitions/controllers.LoginResponse" } } } @@ -949,7 +949,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.LoginResponse" + "$ref": "#/definitions/controllers.LoginResponse" } } } @@ -998,7 +998,7 @@ "type": "object", "properties": { "data": { - "$ref": "#/definitions/models.ProfileResponse" + "$ref": "#/definitions/controllers.ProfileResponse" } } } @@ -1022,29 +1022,7 @@ } }, "definitions": { - "models.Category": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - } - }, - "models.Chapter": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - } - }, - "models.ChapterMapsResponse": { + "controllers.ChapterMapsResponse": { "type": "object", "properties": { "chapter": { @@ -1058,7 +1036,7 @@ } } }, - "models.ChaptersResponse": { + "controllers.ChaptersResponse": { "type": "object", "properties": { "chapters": { @@ -1072,7 +1050,7 @@ } } }, - "models.CreateMapSummaryRequest": { + "controllers.CreateMapSummaryRequest": { "type": "object", "required": [ "category_id", @@ -1102,7 +1080,7 @@ } } }, - "models.DeleteMapSummaryRequest": { + "controllers.DeleteMapSummaryRequest": { "type": "object", "required": [ "route_id" @@ -1113,7 +1091,7 @@ } } }, - "models.EditMapImageRequest": { + "controllers.EditMapImageRequest": { "type": "object", "required": [ "image" @@ -1124,7 +1102,7 @@ } } }, - "models.EditMapSummaryRequest": { + "controllers.EditMapSummaryRequest": { "type": "object", "required": [ "description", @@ -1154,24 +1132,143 @@ } } }, - "models.Game": { + "controllers.LoginResponse": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + } + }, + "controllers.MapSummaryResponse": { + "type": "object", + "properties": { + "map": { + "$ref": "#/definitions/models.Map" + }, + "summary": { + "$ref": "#/definitions/models.MapSummary" + } + } + }, + "controllers.ProfileResponse": { + "type": "object", + "properties": { + "avatar_link": { + "type": "string" + }, + "country_code": { + "type": "string" + }, + "profile": { + "type": "boolean" + }, + "scores_mp": { + "type": "array", + "items": { + "$ref": "#/definitions/controllers.ScoreResponse" + } + }, + "scores_sp": { + "type": "array", + "items": { + "$ref": "#/definitions/controllers.ScoreResponse" + } + }, + "steam_id": { + "type": "string" + }, + "user_name": { + "type": "string" + } + } + }, + "controllers.RankingsResponse": { + "type": "object", + "properties": { + "rankings_mp": { + "type": "array", + "items": { + "$ref": "#/definitions/models.UserRanking" + } + }, + "rankings_sp": { + "type": "array", + "items": { + "$ref": "#/definitions/models.UserRanking" + } + } + } + }, + "controllers.RecordResponse": { + "type": "object", + "properties": { + "score_count": { + "type": "integer" + }, + "score_time": { + "type": "integer" + } + } + }, + "controllers.ScoreResponse": { + "type": "object", + "properties": { + "map_id": { + "type": "integer" + }, + "records": {} + } + }, + "controllers.SearchResponse": { + "type": "object", + "properties": { + "maps": { + "type": "array", + "items": { + "$ref": "#/definitions/models.MapShort" + } + }, + "players": { + "type": "array", + "items": { + "$ref": "#/definitions/models.UserShort" + } + } + } + }, + "models.Category": { "type": "object", "properties": { "id": { "type": "integer" }, - "is_coop": { - "type": "boolean" + "name": { + "type": "string" + } + } + }, + "models.Chapter": { + "type": "object", + "properties": { + "id": { + "type": "integer" }, "name": { "type": "string" } } }, - "models.LoginResponse": { + "models.Game": { "type": "object", "properties": { - "token": { + "id": { + "type": "integer" + }, + "is_coop": { + "type": "boolean" + }, + "name": { "type": "string" } } @@ -1264,77 +1361,6 @@ } } }, - "models.MapSummaryResponse": { - "type": "object", - "properties": { - "map": { - "$ref": "#/definitions/models.Map" - }, - "summary": { - "$ref": "#/definitions/models.MapSummary" - } - } - }, - "models.ProfileResponse": { - "type": "object", - "properties": { - "avatar_link": { - "type": "string" - }, - "country_code": { - "type": "string" - }, - "profile": { - "type": "boolean" - }, - "scores_mp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.ScoreResponse" - } - }, - "scores_sp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.ScoreResponse" - } - }, - "steam_id": { - "type": "string" - }, - "user_name": { - "type": "string" - } - } - }, - "models.RankingsResponse": { - "type": "object", - "properties": { - "rankings_mp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.UserRanking" - } - }, - "rankings_sp": { - "type": "array", - "items": { - "$ref": "#/definitions/models.UserRanking" - } - } - } - }, - "models.RecordResponse": { - "type": "object", - "properties": { - "score_count": { - "type": "integer" - }, - "score_time": { - "type": "integer" - } - } - }, "models.Response": { "type": "object", "properties": { @@ -1347,32 +1373,6 @@ } } }, - "models.ScoreResponse": { - "type": "object", - "properties": { - "map_id": { - "type": "integer" - }, - "records": {} - } - }, - "models.SearchResponse": { - "type": "object", - "properties": { - "maps": { - "type": "array", - "items": { - "$ref": "#/definitions/models.MapShort" - } - }, - "players": { - "type": "array", - "items": { - "$ref": "#/definitions/models.UserShort" - } - } - } - }, "models.UserRanking": { "type": "object", "properties": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 7571073..f50fecb 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1,20 +1,6 @@ basePath: /v1 definitions: - models.Category: - properties: - id: - type: integer - name: - type: string - type: object - models.Chapter: - properties: - id: - type: integer - name: - type: string - type: object - models.ChapterMapsResponse: + controllers.ChapterMapsResponse: properties: chapter: $ref: '#/definitions/models.Chapter' @@ -23,7 +9,7 @@ definitions: $ref: '#/definitions/models.MapShort' type: array type: object - models.ChaptersResponse: + controllers.ChaptersResponse: properties: chapters: items: @@ -32,7 +18,7 @@ definitions: game: $ref: '#/definitions/models.Game' type: object - models.CreateMapSummaryRequest: + controllers.CreateMapSummaryRequest: properties: category_id: type: integer @@ -53,21 +39,21 @@ definitions: - score_count - user_name type: object - models.DeleteMapSummaryRequest: + controllers.DeleteMapSummaryRequest: properties: route_id: type: integer required: - route_id type: object - models.EditMapImageRequest: + controllers.EditMapImageRequest: properties: image: type: string required: - image type: object - models.EditMapSummaryRequest: + controllers.EditMapSummaryRequest: properties: description: type: string @@ -88,18 +74,95 @@ definitions: - score_count - user_name type: object - models.Game: + controllers.LoginResponse: + properties: + token: + type: string + type: object + controllers.MapSummaryResponse: + properties: + map: + $ref: '#/definitions/models.Map' + summary: + $ref: '#/definitions/models.MapSummary' + type: object + controllers.ProfileResponse: + properties: + avatar_link: + type: string + country_code: + type: string + profile: + type: boolean + scores_mp: + items: + $ref: '#/definitions/controllers.ScoreResponse' + type: array + scores_sp: + items: + $ref: '#/definitions/controllers.ScoreResponse' + type: array + steam_id: + type: string + user_name: + type: string + type: object + controllers.RankingsResponse: + properties: + rankings_mp: + items: + $ref: '#/definitions/models.UserRanking' + type: array + rankings_sp: + items: + $ref: '#/definitions/models.UserRanking' + type: array + type: object + controllers.RecordResponse: + properties: + score_count: + type: integer + score_time: + type: integer + type: object + controllers.ScoreResponse: + properties: + map_id: + type: integer + records: {} + type: object + controllers.SearchResponse: + properties: + maps: + items: + $ref: '#/definitions/models.MapShort' + type: array + players: + items: + $ref: '#/definitions/models.UserShort' + type: array + type: object + models.Category: properties: id: type: integer - is_coop: - type: boolean name: type: string type: object - models.LoginResponse: + models.Chapter: properties: - token: + id: + type: integer + name: + type: string + type: object + models.Game: + properties: + id: + type: integer + is_coop: + type: boolean + name: type: string type: object models.Map: @@ -159,52 +222,6 @@ definitions: $ref: '#/definitions/models.MapRoute' type: array type: object - models.MapSummaryResponse: - properties: - map: - $ref: '#/definitions/models.Map' - summary: - $ref: '#/definitions/models.MapSummary' - type: object - models.ProfileResponse: - properties: - avatar_link: - type: string - country_code: - type: string - profile: - type: boolean - scores_mp: - items: - $ref: '#/definitions/models.ScoreResponse' - type: array - scores_sp: - items: - $ref: '#/definitions/models.ScoreResponse' - type: array - steam_id: - type: string - user_name: - type: string - type: object - models.RankingsResponse: - properties: - rankings_mp: - items: - $ref: '#/definitions/models.UserRanking' - type: array - rankings_sp: - items: - $ref: '#/definitions/models.UserRanking' - type: array - type: object - models.RecordResponse: - properties: - score_count: - type: integer - score_time: - type: integer - type: object models.Response: properties: data: {} @@ -213,23 +230,6 @@ definitions: success: type: boolean type: object - models.ScoreResponse: - properties: - map_id: - type: integer - records: {} - type: object - models.SearchResponse: - properties: - maps: - items: - $ref: '#/definitions/models.MapShort' - type: array - players: - items: - $ref: '#/definitions/models.UserShort' - type: array - type: object models.UserRanking: properties: total_score: @@ -275,7 +275,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.ChapterMapsResponse' + $ref: '#/definitions/controllers.ChapterMapsResponse' type: object "400": description: Bad Request @@ -349,7 +349,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.ChaptersResponse' + $ref: '#/definitions/controllers.ChaptersResponse' type: object "400": description: Bad Request @@ -372,7 +372,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.LoginResponse' + $ref: '#/definitions/controllers.LoginResponse' type: object "400": description: Bad Request @@ -399,7 +399,7 @@ paths: name: request required: true schema: - $ref: '#/definitions/models.EditMapImageRequest' + $ref: '#/definitions/controllers.EditMapImageRequest' produces: - application/json responses: @@ -410,7 +410,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.EditMapImageRequest' + $ref: '#/definitions/controllers.EditMapImageRequest' type: object "400": description: Bad Request @@ -493,7 +493,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.RecordResponse' + $ref: '#/definitions/controllers.RecordResponse' type: object "400": description: Bad Request @@ -524,7 +524,7 @@ paths: name: request required: true schema: - $ref: '#/definitions/models.DeleteMapSummaryRequest' + $ref: '#/definitions/controllers.DeleteMapSummaryRequest' produces: - application/json responses: @@ -535,7 +535,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.DeleteMapSummaryRequest' + $ref: '#/definitions/controllers.DeleteMapSummaryRequest' type: object "400": description: Bad Request @@ -561,7 +561,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.MapSummaryResponse' + $ref: '#/definitions/controllers.MapSummaryResponse' type: object "400": description: Bad Request @@ -587,7 +587,7 @@ paths: name: request required: true schema: - $ref: '#/definitions/models.CreateMapSummaryRequest' + $ref: '#/definitions/controllers.CreateMapSummaryRequest' produces: - application/json responses: @@ -598,7 +598,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.CreateMapSummaryRequest' + $ref: '#/definitions/controllers.CreateMapSummaryRequest' type: object "400": description: Bad Request @@ -624,7 +624,7 @@ paths: name: request required: true schema: - $ref: '#/definitions/models.EditMapSummaryRequest' + $ref: '#/definitions/controllers.EditMapSummaryRequest' produces: - application/json responses: @@ -635,7 +635,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.EditMapSummaryRequest' + $ref: '#/definitions/controllers.EditMapSummaryRequest' type: object "400": description: Bad Request @@ -664,7 +664,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.ProfileResponse' + $ref: '#/definitions/controllers.ProfileResponse' type: object "400": description: Bad Request @@ -696,7 +696,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.ProfileResponse' + $ref: '#/definitions/controllers.ProfileResponse' type: object "400": description: Bad Request @@ -753,7 +753,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.RankingsResponse' + $ref: '#/definitions/controllers.RankingsResponse' type: object "400": description: Bad Request @@ -779,7 +779,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.SearchResponse' + $ref: '#/definitions/controllers.SearchResponse' type: object "400": description: Bad Request @@ -800,7 +800,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.LoginResponse' + $ref: '#/definitions/controllers.LoginResponse' type: object "404": description: Not Found @@ -820,7 +820,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.LoginResponse' + $ref: '#/definitions/controllers.LoginResponse' type: object "404": description: Not Found @@ -849,7 +849,7 @@ paths: - $ref: '#/definitions/models.Response' - properties: data: - $ref: '#/definitions/models.ProfileResponse' + $ref: '#/definitions/controllers.ProfileResponse' type: object "400": description: Bad Request -- cgit v1.2.3