ADD: added function to update db scheme automaticly

This commit is contained in:
hwinkel
2025-11-18 22:23:08 +01:00
parent ef396af480
commit 3818fbf460
15 changed files with 876 additions and 186 deletions

View File

@@ -32,35 +32,36 @@ func GetPlayers(c *gin.Context, db *sql.DB) {
}
func CreatePlayer(c *gin.Context, db *sql.DB) {
var newPlayer Player
var newPlayer User
var err error
if err := c.ShouldBindJSON(&newPlayer); err != nil {
log.Printf("Error binding player data: %v", err)
common.RespondError(c, http.StatusBadRequest, "Invalid player data")
return
}
newPlayer.Password, err = common.HashPassword(newPlayer.Password)
newPlayer.password, err = common.HashPassword(newPlayer.password)
if err != nil {
log.Printf("Error hashing password: %v", err)
common.RespondError(c, http.StatusInternalServerError, "Failed to hash password")
return
}
newPlayer.ID = uuid.New().String()
newPlayer.UUID = uuid.New().String()
err = savePlayer(db, newPlayer)
if err != nil {
log.Printf("Error saving player: %v", err)
common.RespondError(c, http.StatusInternalServerError, "Failed to create player")
return
}
err = AddRoleToPlayer(db, newPlayer.ID, "player")
var roles = []string{"player"}
err = AddRoleToPlayer(db, newPlayer.UUID, roles)
if err != nil {
log.Printf("Error adding role to player: %v", err)
common.RespondError(c, http.StatusInternalServerError, "Failed to assign role to player")
return
}
log.Printf("User %s (%s) created player: %s", c.GetString("userId"), c.GetString("email"), newPlayer.Name)
log.Printf("User %s (%s) created player: %s", c.GetString("userId"), c.GetString("email"), newPlayer.Username)
common.RespondCreated(c, newPlayer)
}
@@ -80,19 +81,19 @@ func GetPlayer(c *gin.Context, db *sql.DB, id string) {
return
}
if player.ID == "" {
if player.UUID == "" {
log.Printf("Player with ID %s not found", playerID)
common.RespondError(c, http.StatusNotFound, "Player not found")
return
}
role, err := GetPlayerRole(db, player.ID)
role, err := GetPlayerRole(db, player.UUID)
if err != nil {
log.Printf("Error retrieving role for player ID %s: %v", player.ID, err)
log.Printf("Error retrieving role for player ID %s: %v", player.UUID, err)
common.RespondError(c, http.StatusInternalServerError, "Failed to retrieve player role")
return
}
player.Role = role
log.Printf(player.ID, player.Name, player.Email, player.Role)
log.Printf(player.UUID, player.Username, player.Email, player.Role)
c.JSON(http.StatusOK, player)
}
@@ -109,14 +110,14 @@ func UpdatePlayer(c *gin.Context, db *sql.DB) {
return
}
var updatedPlayer Player
var updatedPlayer User
if err := c.ShouldBindJSON(&updatedPlayer); err != nil {
log.Printf("Error binding player data: %v", err)
common.RespondError(c, http.StatusBadRequest, "Invalid player data")
return
}
updatedPlayer.ID = playerID
updatedPlayer.UUID = playerID
err := updatePlayer(db, updatedPlayer)
if err != nil {
log.Printf("Error updating player with ID %s: %v", playerID, err)
@@ -124,7 +125,7 @@ func UpdatePlayer(c *gin.Context, db *sql.DB) {
return
}
log.Printf("User %s (%s) updated player: %s", c.GetString("userId"), c.GetString("email"), updatedPlayer.Name)
log.Printf("User %s (%s) updated player: %s", c.GetString("userId"), c.GetString("email"), updatedPlayer.Username)
c.JSON(http.StatusOK, updatedPlayer)
}