Record room information (ID, name) in the database #48

Manually merged
projectmoon merged 10 commits from record-room-info into master 2020-11-30 20:16:01 +00:00
1 changed files with 7 additions and 6 deletions
Showing only changes of commit c8c38ac1d4 - Show all commits

View File

@ -237,12 +237,13 @@ impl Rooms {
pub fn get_room_info(&self, info: &RoomInfo) -> Result<Option<RoomInfo>, DataError> { pub fn get_room_info(&self, info: &RoomInfo) -> Result<Option<RoomInfo>, DataError> {
let key = info.room_id.as_bytes(); let key = info.room_id.as_bytes();
//swap/flatten Result<Option<Result>> down into the return type. let room_info: Option<RoomInfo> = self
self.roomid_roominfo .roomid_roominfo
.get(key) .get(key)?
.map(|bytes| bytes.map(|b| bincode::deserialize::<RoomInfo>(&b)))? .map(|bytes| bincode::deserialize(&bytes))
.transpose() .transpose()?;
.map_err(|e| e.into())
Ok(room_info)
} }
pub fn get_rooms_for_user(&self, username: &str) -> Result<HashSet<String>, DataError> { pub fn get_rooms_for_user(&self, username: &str) -> Result<HashSet<String>, DataError> {