ClientState::LoggedIn { username, state: LoggedInState::InGame { ref mut game } } if game.id() == id => {
let id = game.id();
let from = game.actions_len();
- match self.server.game_state(id, from).await {
+ match self.server.game_actions(id, from).await {
Ok(actions) => {
let actions_view: Vec<_> = actions.iter().map(|action| action.view_for(username)).collect();
for action in actions {
Err(err) => ServerMessage::CreateGameFailure { reason: err.to_string() },
},
(&mut ClientState::LoggedIn { username, .. }, ClientMessage::JoinGame { id }) => {
- match (self.server.game_summary(id).await, self.server.game_state(id, 0).await, self.server.game_seed(id).await) {
+ let summary = self.server.game_summary(id).await;
+ let actions = self.server.game_actions(id, 0).await;
+ let seed = self.server.game_seed(id).await;
+ match (summary, actions, seed) {
(Ok(summary), Ok(actions), Ok(seed)) => {
let actions_view = actions.iter().map(|action| action.view_for(username)).collect();
let mut game = Game::new(summary.clone(), seed);
},
Ok(ActionStatus::Interrupted) => {
debug!("Action {:?} was interrupted - updating game state", action);
- match self.server.game_state(id, len).await {
+ match self.server.game_actions(id, len).await {
Ok(actions) => {
for new_action in actions {
if let Err(err) = game.take_action(new_action) {
info!("Dealer is retrieving updates for game {}", id);
'retrieve_updates: loop {
let from = self.dealer.game.actions_len();
- let actions = self.server.game_state(id, from).await?;
+ let actions = self.server.game_actions(id, from).await?;
info!("Got {} actions for game {}", actions.len(), id);
for action in actions {
debug!("Taking action: {:?}", action);
Ok(summaries)
}
- pub async fn game_state(&mut self, id: i64, from: usize) -> RedisResult<Vec<ValidatedUserAction>> {
+ pub async fn game_actions(&mut self, id: i64, from: usize) -> RedisResult<Vec<ValidatedUserAction>> {
let key = game_actions_key(id);
let actions: Vec<AsJson<ValidatedUserAction>> = self.redis.lrange(&key, from as isize, -1).await?;
Ok(actions.into_iter().map(AsJson::get).collect())