diff options
Diffstat (limited to 'internal')
-rw-r--r-- | internal/api/database/models.go | 46 | ||||
-rw-r--r-- | internal/api/handlers/handlers.go | 10 |
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) { |