Skip to content

Commit 9f2ffb7

Browse files
committed
fix: add scorescount api func
1 parent 3ba36cb commit 9f2ffb7

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

Server/DataBaseAPI/dataBase.go

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,40 @@ func main() {
8686
router.GET("/players", IsPlayerExist)
8787
router.POST("/scores", AddScore)
8888
router.GET("/scores", AllUserScores)
89+
router.GET("/scorescount", UserScoresCount)
8990
router.GET("/bestscores", AllBestScores)
9091
var url = fmt.Sprintf("%s:%s", host, port)
9192
router.Run(url)
9293
}
9394

95+
func UserScoresCount(c *gin.Context) {
96+
var curId idStruct
97+
if err := c.BindJSON(&curId); err != nil {
98+
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "Invalid request payload"})
99+
return
100+
}
101+
102+
var playerExists bool
103+
err := db.QueryRow("SELECT EXISTS(SELECT 1 FROM players WHERE player_id = $1)", curId.Id).Scan(&playerExists)
104+
if err != nil {
105+
log.Fatal(err)
106+
}
107+
108+
fmt.Println(playerExists)
109+
if !playerExists {
110+
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "Player does not exist"})
111+
return
112+
}
113+
114+
var totalScore int
115+
err = db.QueryRow("SELECT COUNT(score_id) FROM scores WHERE fk_player_id = $1", curId.Id).Scan(&totalScore)
116+
if err != nil {
117+
log.Fatal(err)
118+
}
119+
120+
c.JSON(http.StatusOK, gin.H{"total_scores": totalScore})
121+
}
122+
94123
func AddPlayer(c *gin.Context) {
95124
var newPlayer player
96125
if err := c.BindJSON(&newPlayer); err != nil {
@@ -215,7 +244,7 @@ func AllUserScores(c *gin.Context) {
215244
return
216245
}
217246

218-
rows, err := db.Query("SELECT score_id, points FROM scores WHERE fk_player_id = $1 LIMIT 30", curId.Id)
247+
rows, err := db.Query("SELECT score_id, points FROM scores WHERE fk_player_id = $1 ORDER BY score_id DESC LIMIT 30", curId.Id)
219248
if err != nil {
220249
log.Fatal(err)
221250
}

0 commit comments

Comments
 (0)