forgot to put new api docs and fixed a bug with duplicates

This commit is contained in:
2026-02-15 22:00:19 +03:00
parent c357e78003
commit e17569909f
3 changed files with 24 additions and 4 deletions

View File

@@ -6,10 +6,17 @@ meta {
post { post {
url: {{base_url}}/api/user/games url: {{base_url}}/api/user/games
body: none body: json
auth: inherit auth: inherit
} }
body:json {
{
"steamAppId": 105600
}
}
settings { settings {
encodeUrl: true encodeUrl: true
timeout: 0
} }

13
main.go
View File

@@ -9,6 +9,7 @@ import (
"log" "log"
"net/http" "net/http"
"os" "os"
"slices"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@@ -267,10 +268,22 @@ func main() {
return return
} }
if tx := db.First(&model.Game{SteamAppID: game.SteamAppID}); tx.Error != nil {
// game doesn't exist in db, gonna create it real quick
if tx := db.Create(game); tx.Error != nil { if tx := db.Create(game); tx.Error != nil {
sendError(w, "failed to create game", err, 400) sendError(w, "failed to create game", err, 400)
return return
} }
}
alreadyHasGame := !slices.ContainsFunc(user.Games, func(g model.Game) bool {
return g.SteamAppID == game.SteamAppID
})
if !alreadyHasGame {
// user already has this game on the wishlist
sendError(w, "game is already on the wishlist", nil, 400)
return
}
user.Games = append(user.Games, *game) user.Games = append(user.Games, *game)

View File

@@ -4,7 +4,7 @@ type Game struct {
Model Model
Name string `json:"name"` Name string `json:"name"`
SteamAppID int `json:"steamAppId"` SteamAppID int `json:"steamAppId" gorm:"unique"`
Image string `json:"image"` Image string `json:"image"`
ReleaseDate string `json:"releaseDate"` ReleaseDate string `json:"releaseDate"`
} }