diff -r 8390d5e4e39c -r a1077e8d26f4 rust/hedgewars-server/src/server/database.rs --- a/rust/hedgewars-server/src/server/database.rs Wed Apr 10 19:30:08 2019 +0300 +++ b/rust/hedgewars-server/src/server/database.rs Wed Apr 10 23:56:53 2019 +0300 @@ -16,6 +16,8 @@ VALUES (:players, :rooms, UNIX_TIMESTAMP())"; +const GET_REPLAY_NAME_QUERY: &str = r"SELECT filename FROM achievements WHERE id = :id"; + struct ServerStatistics { rooms: u32, players: u32, @@ -95,8 +97,19 @@ Ok(()) } - pub fn get_replay_name(&mut self, replay_id: u32) -> Result { - Err(()) + pub fn get_replay_name(&mut self, replay_id: u32) -> Result, Error> { + if let Some(pool) = &self.pool { + if let Some(row) = + pool.first_exec(GET_REPLAY_NAME_QUERY, params! { "id" => replay_id })? + { + let (filename) = from_row_opt::<(String)>(row)?; + Ok(Some(filename)) + } else { + Ok(None) + } + } else { + Err(DriverError::SetupError.into()) + } } }