Fix: session to create player only if does not exist
This commit is contained in:
@ -90,6 +90,7 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) {
|
||||
// userstate, err := loadState(cleanName)
|
||||
userstate, err := repo.PlayerGetByName(r.Context(), cleanName)
|
||||
if err != nil || userstate == nil {
|
||||
log.Debug("making new player", "error", err, "state", userstate)
|
||||
userstate = models.InitPlayer(cleanName)
|
||||
makeplayer = true
|
||||
}
|
||||
@ -106,7 +107,7 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// room.PlayerList = append(room.PlayerList, fi.State.Username)
|
||||
fi.Room = room
|
||||
// fi.Room = room
|
||||
fi.List = nil
|
||||
fi.State.RoomID = &room.ID
|
||||
if err := repo.PlayerSetRoomID(r.Context(), room.ID, fi.State.Username); err != nil {
|
||||
@ -181,11 +182,14 @@ func makeCookie(username string, remote string) (*http.Cookie, error) {
|
||||
cookie.Secure = false
|
||||
log.Info("changing cookie domain", "domain", cookie.Domain)
|
||||
}
|
||||
// make player first, since username is fk to players table
|
||||
player := models.InitPlayer(username)
|
||||
if err := repo.PlayerAdd(context.Background(), player); err != nil {
|
||||
slog.Error("failed to create player", "username", username)
|
||||
return nil, err
|
||||
player, err := repo.PlayerGetByName(context.Background(), username)
|
||||
if err != nil || player == nil {
|
||||
// make player first, since username is fk to players table
|
||||
player = models.InitPlayer(username)
|
||||
if err := repo.PlayerAdd(context.Background(), player); err != nil {
|
||||
slog.Error("failed to create player", "username", username)
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if err := repo.SessionCreate(context.Background(), session); err != nil {
|
||||
return nil, err
|
||||
|
Reference in New Issue
Block a user