fix: request context to rooms manager

This commit is contained in:
efim 2023-12-01 04:13:10 +00:00
parent cc33c3f742
commit a502ee72a0
3 changed files with 11 additions and 11 deletions

View File

@ -50,8 +50,8 @@ func (r *Room) UnmarshalBinary(data []byte) error {
// let's check whether it will be possible to save nested structs // let's check whether it will be possible to save nested structs
type RoomManager interface { type RoomManager interface {
Get(roomName string) (Room, bool, error) Get(ctx context.Context, roomName string) (Room, bool, error)
Save(room Room) error Save(ctx context.Context, room Room) error
Update(ctx context.Context, roomName string, f func(fromRoom Room) (toRoom Room)) error Update(ctx context.Context, roomName string, f func(fromRoom Room) (toRoom Room)) error
Subscribe(ctx context.Context, roomName string) <-chan Room Subscribe(ctx context.Context, roomName string) <-chan Room
} }
@ -66,9 +66,9 @@ type RedisRM struct {
Rdb *redis.Client Rdb *redis.Client
} }
func (redisRM RedisRM) Get(roomName string) (Room, bool, error) { func (redisRM RedisRM) Get(ctx context.Context, roomName string) (Room, bool, error) {
var readRoom Room var readRoom Room
err := redisRM.Rdb.Get(context.TODO(), roomNameToRedisId(roomName)).Scan(&readRoom) err := redisRM.Rdb.Get(ctx, roomNameToRedisId(roomName)).Scan(&readRoom)
if err == redis.Nil { if err == redis.Nil {
return Room{}, false, nil return Room{}, false, nil
} }
@ -177,7 +177,7 @@ func (redisRM RedisRM) Update(ctx context.Context, roomName string, f func(fromR
return errors.New("update reached maximum amount of retries") return errors.New("update reached maximum amount of retries")
} }
func (redisRM RedisRM) Save(room Room) error { func (redisRM RedisRM) Save(ctx context.Context, room Room) error {
err := redisRM.Rdb.Set(context.TODO(), roomNameToRedisId(room.Name), &room, 0).Err() // maybe even set expiration? err := redisRM.Rdb.Set(ctx, roomNameToRedisId(room.Name), &room, 0).Err() // maybe even set expiration?
return err return err
} }

View File

@ -146,7 +146,7 @@ func createRoomHandler(templateFs *embed.FS,
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
} }
roomName := r.PostFormValue("roomName") roomName := r.PostFormValue("roomName")
_, exists, _ := roomsM.Get(roomName) _, exists, _ := roomsM.Get(r.Context(), roomName)
if exists { if exists {
// TODO return anouther error notice // TODO return anouther error notice
log.Printf("error, room name occupied %s", roomName) log.Printf("error, room name occupied %s", roomName)
@ -171,7 +171,7 @@ func createRoomHandler(templateFs *embed.FS,
AllKnownPeople: map[rooms.PersonId]rooms.Person{ AllKnownPeople: map[rooms.PersonId]rooms.Person{
person.Id: person}, person.Id: person},
} }
err = roomsM.Save(newRoom) err = roomsM.Save(r.Context(), newRoom)
if err != nil { if err != nil {
log.Printf("what am i to do? error saving room %s", err) log.Printf("what am i to do? error saving room %s", err)
// todo return error notice somehow // todo return error notice somehow
@ -205,7 +205,7 @@ func checkRoomName(templateFs *embed.FS,
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
} }
roomName := r.PostFormValue("roomName") roomName := r.PostFormValue("roomName")
_, isFound, err := roomsM.Get(roomName) _, isFound, err := roomsM.Get(r.Context(), roomName)
if err != nil { if err != nil {
log.Printf("/login/room-name-check error finding room %s\n", err) log.Printf("/login/room-name-check error finding room %s\n", err)
} }
@ -231,7 +231,7 @@ func joinRoomHandler(templateFs *embed.FS,
personPass := r.PostFormValue("personalPassword") personPass := r.PostFormValue("personalPassword")
// a) get room data // a) get room data
room, _, err := roomsM.Get(roomName) room, _, err := roomsM.Get(r.Context(), roomName)
if err != nil { if err != nil {
log.Printf("/login/join error getting room %s", roomName) log.Printf("/login/join error getting room %s", roomName)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)

View File

@ -223,7 +223,7 @@ func roomPageRoute(
// check session, // check session,
session, err := getRequestSession(r, sessionSM) session, err := getRequestSession(r, sessionSM)
room, found, err := roomsM.Get(roomName) room, found, err := roomsM.Get(r.Context(), roomName)
if err != nil || session.RoomId != roomName { if err != nil || session.RoomId != roomName {
log.Printf("not authed with session %+v | error %s, but for wrong room, trying to access %s", session, err, roomName) log.Printf("not authed with session %+v | error %s, but for wrong room, trying to access %s", session, err, roomName)
renderLoginPage(w, roomName, found) renderLoginPage(w, roomName, found)