games.UserByName
parent
0b22ba4bd2
commit
706d55631b
|
|
@ -102,6 +102,19 @@ func (games Games) UserName(ctx context.Context, id string) (string, error) {
|
|||
return result, err
|
||||
}
|
||||
|
||||
func (games Games) UserByName(ctx context.Context, gid, name string) (string, error) {
|
||||
result := ""
|
||||
err := games.db.Query(ctx, func(rows *sql.Rows) error {
|
||||
return rows.Scan(&result)
|
||||
}, `
|
||||
SELECT users.uuid
|
||||
FROM players
|
||||
JOIN users ON players.user_uuid=users.uuid
|
||||
WHERE players.game_uuid=? AND users.name=?
|
||||
`, gid, name)
|
||||
return result, err
|
||||
}
|
||||
|
||||
func (a KillWord) Empty() bool {
|
||||
return a == (KillWord{})
|
||||
}
|
||||
|
|
@ -378,14 +391,8 @@ func (games Games) CreateGame(ctx context.Context, name string) (string, error)
|
|||
`, id, time.Now(), name)
|
||||
}
|
||||
|
||||
func (games Games) CreateEventPlayerJoin(ctx context.Context, id string, player, name string) error {
|
||||
if err := games.db.Exec(ctx, `
|
||||
INSERT INTO users (
|
||||
uuid,
|
||||
name
|
||||
) VALUES (?, ?)
|
||||
ON CONFLICT DO UPDATE SET name=? WHERE uuid=?;
|
||||
`, player, name, name, player); err != nil {
|
||||
func (games Games) CreateEventPlayerJoin(ctx context.Context, id string, player string) error {
|
||||
if _, err := games.UserName(ctx, player); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := games.db.Exec(ctx, `
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ func TestGames(t *testing.T) {
|
|||
t.Fatal("redundant create game didnt return same id:", id2)
|
||||
}
|
||||
|
||||
if err := games.CreateEventPlayerJoin(ctx, id, "p0", "player zero"); err != nil {
|
||||
if err := games.CreateEventPlayerJoin(ctx, id, "p0"); err != nil {
|
||||
t.Fatal("err creating event player join:", err)
|
||||
} else if err := games.CreateEventPlayerLeave(ctx, id, "p0"); err != nil {
|
||||
t.Fatal("err creating event player leave:", err)
|
||||
|
|
@ -64,12 +64,12 @@ func TestGames(t *testing.T) {
|
|||
|
||||
for i := 0; i < 4; i++ {
|
||||
p := fmt.Sprintf("p%d", i+1)
|
||||
if err := games.CreateEventPlayerJoin(ctx, id, p, "player "+p); err != nil {
|
||||
if err := games.CreateEventPlayerJoin(ctx, id, p); err != nil {
|
||||
t.Fatal(p, "err creating event player join", err)
|
||||
}
|
||||
if name, err := games.UserName(ctx, p); err != nil {
|
||||
t.Fatal(p, "err getting user name", err)
|
||||
} else if name != "player "+p {
|
||||
} else if name == "" {
|
||||
t.Fatal("name wrong", name)
|
||||
}
|
||||
if err := games.UpdateUserName(ctx, p, "player! "+p); err != nil {
|
||||
|
|
@ -402,5 +402,15 @@ func TestGenerateUserName(t *testing.T) {
|
|||
t.Fatal(name2)
|
||||
}
|
||||
|
||||
if err := games.CreateEventPlayerJoin(context.Background(), "gid", "id"); err != nil {
|
||||
t.Fatal("err creating event player join:", err)
|
||||
}
|
||||
|
||||
if id, err := games.UserByName(context.Background(), "gid", name); err != nil {
|
||||
t.Fatal("err getting user by name:", err)
|
||||
} else if id != "id" {
|
||||
t.Fatal("getting user by name yielded wrong id:", id)
|
||||
}
|
||||
|
||||
t.Log(name)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ func TestUserGameServer(t *testing.T) {
|
|||
pids := []string{}
|
||||
for i := 0; i < 4; i++ {
|
||||
pid := fmt.Sprintf("p%d", i+1)
|
||||
if err := games.CreateEventPlayerJoin(ctx, gid, pid, "player "+pid); err != nil {
|
||||
if err := games.CreateEventPlayerJoin(ctx, gid, pid); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
pids = append(pids, pid)
|
||||
|
|
|
|||
|
|
@ -46,11 +46,6 @@ func (s *S) serveV1(w http.ResponseWriter, r *http.Request) error {
|
|||
}
|
||||
|
||||
func (s *S) serveV1PutParty(w http.ResponseWriter, r *http.Request) error {
|
||||
userName, err := s.games.UserName(r.Context(), s.Session(r.Context()).ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
party, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -73,5 +68,5 @@ func (s *S) serveV1PutParty(w http.ResponseWriter, r *http.Request) error {
|
|||
if slices.Contains(games, gid) {
|
||||
return nil
|
||||
}
|
||||
return s.games.CreateEventPlayerJoin(r.Context(), gid, s.Session(r.Context()).ID, userName)
|
||||
return s.games.CreateEventPlayerJoin(r.Context(), gid, s.Session(r.Context()).ID)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue