summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/api/database/models.go46
-rw-r--r--internal/api/handlers/handlers.go10
2 files changed, 34 insertions, 22 deletions
diff --git a/internal/api/database/models.go b/internal/api/database/models.go
index f065a8c..82a2649 100644
--- a/internal/api/database/models.go
+++ b/internal/api/database/models.go
@@ -17,24 +17,32 @@ const (
PairGameType GameType = "pair"
)
+type MoveChooseType string
+
+const (
+ SequentialChooseType MoveChooseType = "sequential"
+ RandomChooseType MoveChooseType = "random"
+)
+
type Game struct {
- ID int `json:"id"`
- Type GameType `json:"type"`
- Player1ID int `json:"-"`
- Player1 User `gorm:"foreignKey:Player1ID" json:"player1"`
- Player2ID *int `json:"-"`
- Player2 *User `gorm:"foreignKey:Player2ID;null" json:"player2"`
- Player3ID *int `json:"-"`
- Player3 *User `gorm:"foreignKey:Player3ID;null" json:"player3"`
- Player4ID *int `json:"-"`
- Player4 *User `gorm:"foreignKey:Player4ID;null" json:"player4"`
- Name string `json:"name"`
- IP1 string `json:"ip1"`
- IP2 string `json:"ip2"`
- IP3 string `json:"ip3"`
- IP4 string `json:"ip4"`
- Outcome string `json:"outcome"`
- LastPlayer int `json:"last_player"` // Last player entered in game
- CreatedAt time.Time `json:"created_at"`
- UpdatedAt time.Time `json:"updated_at"`
+ ID int `json:"id"`
+ Type GameType `json:"type"`
+ MoveChoose MoveChooseType `json:"move_choose_type"`
+ Player1ID int `json:"-"`
+ Player1 User `gorm:"foreignKey:Player1ID" json:"player1"`
+ Player2ID *int `json:"-"`
+ Player2 *User `gorm:"foreignKey:Player2ID;null" json:"player2"`
+ Player3ID *int `json:"-"`
+ Player3 *User `gorm:"foreignKey:Player3ID;null" json:"player3"`
+ Player4ID *int `json:"-"`
+ Player4 *User `gorm:"foreignKey:Player4ID;null" json:"player4"`
+ Name string `json:"name"`
+ IP1 string `json:"ip1"`
+ IP2 string `json:"ip2"`
+ IP3 string `json:"ip3"`
+ IP4 string `json:"ip4"`
+ Outcome string `json:"outcome"`
+ LastPlayer int `json:"last_player"` // Last player entered in game
+ CreatedAt time.Time `json:"created_at"`
+ UpdatedAt time.Time `json:"updated_at"`
}
diff --git a/internal/api/handlers/handlers.go b/internal/api/handlers/handlers.go
index 29da3b3..c97dcbf 100644
--- a/internal/api/handlers/handlers.go
+++ b/internal/api/handlers/handlers.go
@@ -105,8 +105,9 @@ func NewPlay(w http.ResponseWriter, r *http.Request) {
}
var payload struct {
- IP string `json:"ip"`
- Type database.GameType `json:"type"`
+ IP string `json:"ip"`
+ Type database.GameType `json:"type"`
+ MoveChoose database.MoveChooseType `json:"move_choose_type"`
}
if err := json.NewDecoder(r.Body).Decode(&payload); err != nil {
@@ -126,6 +127,7 @@ func NewPlay(w http.ResponseWriter, r *http.Request) {
play := database.Game{
Type: payload.Type,
+ MoveChoose: payload.MoveChoose,
Player1ID: claims.UserID,
Name: name,
IP1: payload.IP,
@@ -138,7 +140,9 @@ func NewPlay(w http.ResponseWriter, r *http.Request) {
return
}
- json.NewEncoder(w).Encode(map[string]interface{}{"id": play.ID, "type": play.Type, "name": name})
+ json.NewEncoder(w).Encode(map[string]interface{}{
+ "id": play.ID, "type": play.Type, "moove_choose_type": play.MoveChoose, "name": name,
+ })
}
func EnterGame(w http.ResponseWriter, r *http.Request) {