M sdbapi/main.go => sdbapi/main.go +7 -0
@@ 45,6 45,13 @@ func createRouter() *gin.Engine {
userp.GET("/:id", handlers.UserInfoP)
}
}
+ game := api.Group("/game").Use(middlewares.Auth())
+ {
+ game.GET("/:id", handlers.GameInfo)
+ game.GET("/get_forming", handlers.FormingGames)
+ game.POST("/create", handlers.CreateGame)
+ game.PATCH("/:id/state", handlers.PatchGame)
+ }
}
return router
}
A sdbapi/models/game.go => sdbapi/models/game.go +27 -0
@@ 0,0 1,27 @@
+/*
+ * This file is part of sdbapi
+ * Copyright (C) 2022 Jonni Liljamo <jonni@liljamo.com>
+ *
+ * Licensed under GPL-3.0-only.
+ * See LICENSE for licensing information.
+ */
+
+package models
+
+import (
+ "gorm.io/gorm"
+)
+
+const (
+ GAMESTATE_FORMING uint8 = 0
+ GAMESTATE_INPROGRESS uint8 = 1
+ GAMESTATE_FINISHED uint8 = 2
+)
+
+type Game struct {
+ gorm.Model
+ ID string `json:"id" gorm:"primarykey;type:uuid;default:gen_random_uuid()"`
+ P1 User `json:"p1" gorm:"foreignkey:ID"`
+ P2 User `json:"p2" gorm:"foreignkey:ID"`
+ State uint8 `json:"state" gorm:"type:smallint"`
+}