Enha: use of db methods
This commit is contained in:
		| @@ -60,34 +60,34 @@ func createRoom(ctx context.Context, req *models.RoomReq) (*models.Room, error) | ||||
|  | ||||
| // context | ||||
|  | ||||
| func getStateByCtx(ctx context.Context) (*models.UserState, error) { | ||||
| 	username, ok := ctx.Value(models.CtxUsernameKey).(string) | ||||
| 	if !ok { | ||||
| 		log.Debug("no username in ctx") | ||||
| 		return &models.UserState{}, errors.New("no username in ctx") | ||||
| 	} | ||||
| 	us, err := loadState(username) | ||||
| 	if err != nil { | ||||
| 		return &models.UserState{}, err | ||||
| 	} | ||||
| 	return us, nil | ||||
| } | ||||
| // func getStateByCtx(ctx context.Context) (*models.UserState, error) { | ||||
| // 	username, ok := ctx.Value(models.CtxUsernameKey).(string) | ||||
| // 	if !ok { | ||||
| // 		log.Debug("no username in ctx") | ||||
| // 		return &models.UserState{}, errors.New("no username in ctx") | ||||
| // 	} | ||||
| // 	us, err := loadState(username) | ||||
| // 	if err != nil { | ||||
| // 		return &models.UserState{}, err | ||||
| // 	} | ||||
| // 	return us, nil | ||||
| // } | ||||
|  | ||||
| // func dbCreate(fi *models.FullInfo) error{ | ||||
| // 	repo.CreateRoom() | ||||
| // } | ||||
|  | ||||
| // func saveFullInfo(fi *models.FullInfo) error { | ||||
| // 	// INFO: no transactions; so case is possible where first object is updated but the second is not | ||||
| // 	if err := saveState(fi.State.Username, fi.State); err != nil { | ||||
| // 		return err | ||||
| // 	} | ||||
| // 	log.Debug("saved user state", "state", fi.State) | ||||
| // 	if err := saveRoom(fi.Room); err != nil { | ||||
| // 		return err | ||||
| // 	} | ||||
| // 	return nil | ||||
| // } | ||||
| func saveFullInfo(fi *models.FullInfo) error { | ||||
| 	// INFO: no transactions; so case is possible where first object is updated but the second is not | ||||
| 	if err := repo.PlayerUpdate(fi.State); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	log.Debug("saved user state", "state", fi.State) | ||||
| 	if err := repo.RoomUpdate(context.Background(), fi.Room); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func notifyBotIfNeeded(room *models.Room) { | ||||
| 	if botName := room.WhichBotToMove(); botName != "" { | ||||
| @@ -229,24 +229,24 @@ func joinTeam(ctx context.Context, role, team string) (*models.FullInfo, error) | ||||
| } | ||||
|  | ||||
| // get all rooms | ||||
| func listRooms(allRooms bool) []*models.Room { | ||||
| 	cacheMap := memcache.GetAll() | ||||
| 	publicRooms := []*models.Room{} | ||||
| 	// no way to know if room is public until unmarshal -_-; | ||||
| 	for key, value := range cacheMap { | ||||
| 		if strings.HasPrefix(key, models.CacheRoomPrefix) { | ||||
| 			room := &models.Room{} | ||||
| 			if err := json.Unmarshal(value, &room); err != nil { | ||||
| 				log.Warn("failed to unmarshal room", "error", err) | ||||
| 				continue | ||||
| 			} | ||||
| 			if room.IsPublic || allRooms { | ||||
| 				publicRooms = append(publicRooms, room) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return publicRooms | ||||
| } | ||||
| // func listRooms(allRooms bool) []*models.Room { | ||||
| // 	cacheMap := memcache.GetAll() | ||||
| // 	publicRooms := []*models.Room{} | ||||
| // 	// no way to know if room is public until unmarshal -_-; | ||||
| // 	for key, value := range cacheMap { | ||||
| // 		if strings.HasPrefix(key, models.CacheRoomPrefix) { | ||||
| // 			room := &models.Room{} | ||||
| // 			if err := json.Unmarshal(value, &room); err != nil { | ||||
| // 				log.Warn("failed to unmarshal room", "error", err) | ||||
| // 				continue | ||||
| // 			} | ||||
| // 			if room.IsPublic || allRooms { | ||||
| // 				publicRooms = append(publicRooms, room) | ||||
| // 			} | ||||
| // 		} | ||||
| // 	} | ||||
| // 	return publicRooms | ||||
| // } | ||||
|  | ||||
| // get bots | ||||
| func listBots() map[string]map[string]string { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder