diff --git a/rooms/rooms_manager.go b/rooms/rooms_manager.go index b5f881d..431a8ce 100644 --- a/rooms/rooms_manager.go +++ b/rooms/rooms_manager.go @@ -50,8 +50,8 @@ func (r *Room) UnmarshalBinary(data []byte) error { // let's check whether it will be possible to save nested structs type RoomManager interface { - Get(roomName string) (Room, bool, error) - Save(room Room) error + Get(ctx context.Context, roomName string) (Room, bool, error) + Save(ctx context.Context, room Room) error Update(ctx context.Context, roomName string, f func(fromRoom Room) (toRoom Room)) error Subscribe(ctx context.Context, roomName string) <-chan Room } @@ -66,9 +66,9 @@ type RedisRM struct { 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 - err := redisRM.Rdb.Get(context.TODO(), roomNameToRedisId(roomName)).Scan(&readRoom) + err := redisRM.Rdb.Get(ctx, roomNameToRedisId(roomName)).Scan(&readRoom) if err == redis.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") } -func (redisRM RedisRM) Save(room Room) error { - err := redisRM.Rdb.Set(context.TODO(), roomNameToRedisId(room.Name), &room, 0).Err() // maybe even set expiration? +func (redisRM RedisRM) Save(ctx context.Context, room Room) error { + err := redisRM.Rdb.Set(ctx, roomNameToRedisId(room.Name), &room, 0).Err() // maybe even set expiration? return err } diff --git a/routes/login_page.go b/routes/login_page.go index 51c4172..9d89c3b 100644 --- a/routes/login_page.go +++ b/routes/login_page.go @@ -146,7 +146,7 @@ func createRoomHandler(templateFs *embed.FS, w.WriteHeader(http.StatusBadRequest) } roomName := r.PostFormValue("roomName") - _, exists, _ := roomsM.Get(roomName) + _, exists, _ := roomsM.Get(r.Context(), roomName) if exists { // TODO return anouther error notice log.Printf("error, room name occupied %s", roomName) @@ -171,7 +171,7 @@ func createRoomHandler(templateFs *embed.FS, AllKnownPeople: map[rooms.PersonId]rooms.Person{ person.Id: person}, } - err = roomsM.Save(newRoom) + err = roomsM.Save(r.Context(), newRoom) if err != nil { log.Printf("what am i to do? error saving room %s", err) // todo return error notice somehow @@ -205,7 +205,7 @@ func checkRoomName(templateFs *embed.FS, w.WriteHeader(http.StatusBadRequest) } roomName := r.PostFormValue("roomName") - _, isFound, err := roomsM.Get(roomName) + _, isFound, err := roomsM.Get(r.Context(), roomName) if err != nil { 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") // a) get room data - room, _, err := roomsM.Get(roomName) + room, _, err := roomsM.Get(r.Context(), roomName) if err != nil { log.Printf("/login/join error getting room %s", roomName) w.WriteHeader(http.StatusBadRequest) diff --git a/routes/room_page.go b/routes/room_page.go index 25ba5d4..b4e76c0 100644 --- a/routes/room_page.go +++ b/routes/room_page.go @@ -223,7 +223,7 @@ func roomPageRoute( // check session, 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 { log.Printf("not authed with session %+v | error %s, but for wrong room, trying to access %s", session, err, roomName) renderLoginPage(w, roomName, found)