package handlers import ( "context" "encoding/json" "golias/models" ) func createRoom(ctx context.Context, req *models.RoomReq) (*models.Room, error) { return nil, nil } func getRoomByID(roomID string) (*models.Room, error) { roomBytes, err := memcache.Get(models.CacheRoomPrefix + roomID) if err != nil { return nil, err } resp := &models.Room{} if err := json.Unmarshal(roomBytes, &resp); err != nil { return nil, err } return resp, nil } // context func getRoomIDFromCtx(ctx context.Context) string { id, _ := ctx.Value(models.CtxRoomIDKey).(string) return id } // cache func getAllNames() []string { names := []string{} // will not scale wholeMemStore := memcache.GetAll() session := &models.Session{} // filter by key size only sessions for k, v := range wholeMemStore { // xid is 20 in len if len(k) != 20 { continue } if err := json.Unmarshal(v, &session); err != nil { log.Error("failed to unmarshal", "error", err) continue } names = append(names, session.Username) } return names }