From 9fade13368c732401030d392ef2332279716243e Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 19 Apr 2023 14:14:11 +0300 Subject: doc: complete rest of swagger implementation, change rankings response (#34) --- backend/controllers/homeController.go | 18 +++++++++++++++--- backend/controllers/loginController.go | 2 -- backend/controllers/mapController.go | 9 +++++++++ backend/controllers/recordController.go | 23 +++++++++++++++++++++++ 4 files changed, 47 insertions(+), 5 deletions(-) (limited to 'backend/controllers') diff --git a/backend/controllers/homeController.go b/backend/controllers/homeController.go index 8b52ff3..12949a4 100644 --- a/backend/controllers/homeController.go +++ b/backend/controllers/homeController.go @@ -19,6 +19,14 @@ func Home(c *gin.Context) { } } +// GET Rankings +// +// @Summary Get rankings of every player. +// @Accept json +// @Produce json +// @Success 200 {object} models.Response{data=models.RankingsResponse} +// @Failure 400 {object} models.Response +// @Router /demo [get] func Rankings(c *gin.Context) { rows, err := database.DB.Query(`SELECT steam_id, username FROM users;`) if err != nil { @@ -103,8 +111,12 @@ func Rankings(c *gin.Context) { mpRankings = append(mpRankings, ranking) } } - c.JSON(http.StatusOK, models.RankingsResponse{ - RankingsSP: spRankings, - RankingsMP: mpRankings, + c.JSON(http.StatusOK, models.Response{ + Success: true, + Message: "Successfully retrieved rankings.", + Data: models.RankingsResponse{ + RankingsSP: spRankings, + RankingsMP: mpRankings, + }, }) } diff --git a/backend/controllers/loginController.go b/backend/controllers/loginController.go index 6feda8a..84ef22f 100644 --- a/backend/controllers/loginController.go +++ b/backend/controllers/loginController.go @@ -40,7 +40,6 @@ func Login(c *gin.Context) { var checkSteamID int64 err = database.DB.QueryRow("SELECT steam_id FROM users WHERE steam_id = $1", steamID).Scan(&checkSteamID) // if err != nil { - // fmt.Println("y1") // c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) // return // } @@ -48,7 +47,6 @@ func Login(c *gin.Context) { if checkSteamID == 0 { user, err := GetPlayerSummaries(steamID, os.Getenv("API_KEY")) if err != nil { - fmt.Println("y2") c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) return } diff --git a/backend/controllers/mapController.go b/backend/controllers/mapController.go index 4c57971..1560441 100644 --- a/backend/controllers/mapController.go +++ b/backend/controllers/mapController.go @@ -9,6 +9,15 @@ import ( "github.com/pektezol/leastportals/backend/models" ) +// GET Map +// +// @Summary Get map page with specified id. +// @Accept json +// @Produce json +// @Param id path int true "Map ID" +// @Success 200 {object} models.Response{data=models.Map} +// @Failure 400 {object} models.Response +// @Router /maps/{id} [get] func FetchMap(c *gin.Context) { id := c.Param("id") // Get map data diff --git a/backend/controllers/recordController.go b/backend/controllers/recordController.go index 1cfaa56..27f39fc 100644 --- a/backend/controllers/recordController.go +++ b/backend/controllers/recordController.go @@ -18,6 +18,20 @@ import ( "google.golang.org/api/drive/v3" ) +// POST Record +// +// @Summary Post record with demo of a specific map. +// @Accept mpfd +// @Produce json +// @Param demos formData []file true "Demos" +// @Param score_count formData int true "Score Count" +// @Param score_time formData int true "Score Time" +// @Param is_partner_orange formData boolean true "Is Partner Orange" +// @Param partner_id formData string true "Partner ID" +// @Success 200 {object} models.Response{data=models.RecordRequest} +// @Failure 400 {object} models.Response +// @Failure 401 {object} models.Response +// @Router /maps/{id}/record [post] func CreateRecordWithDemo(c *gin.Context) { mapId := c.Param("id") // Check if user exists @@ -176,6 +190,15 @@ func CreateRecordWithDemo(c *gin.Context) { return } +// GET Demo +// +// @Summary Get demo with specified demo uuid. +// @Accept json +// @Produce octet-stream +// @Param uuid path int true "Demo UUID" +// @Success 200 {file} binary "Demo File" +// @Failure 400 {object} models.Response +// @Router /demo [get] func DownloadDemoWithID(c *gin.Context) { uuid := c.Query("uuid") var locationID string -- cgit v1.2.3