diff --git a/backend/src/main.rs b/backend/src/main.rs index d39854b..401026d 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -124,6 +124,19 @@ async fn update_game( if let Some(existing) = games.iter_mut().find(|g| { (g.remote_id == game.remote_id && g.source == game.source) || (g.title == game.title) }) { + if existing.title != game.title { + // Update title for every opinion + for person in user_list.lock().await.iter_mut() { + let opinion = person + .person + .opinion + .iter_mut() + .find(|o| o.title == existing.title); + if let Some(opinion) = opinion { + opinion.title = game.title.clone(); + } + } + } existing.title = game.title.clone(); existing.source = game.source; existing.min_players = game.min_players; @@ -133,6 +146,9 @@ async fn update_game( r_existing = Some(existing.clone()); } + + games.sort_unstable_by(|g1, g2| g1.title.cmp(&g2.title)); + let users = user_list.lock().await; save_state(&games, &users);