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
2 changed files with 37 additions and 3 deletions
Showing only changes of commit 0b2246cbd5 - Show all commits

View File

@ -234,8 +234,8 @@ impl Rooms {
Ok(()) Ok(())
} }
pub fn get_room_info(&self, info: &RoomInfo) -> Result<Option<RoomInfo>, DataError> { pub fn get_room_info(&self, room_id: &str) -> Result<Option<RoomInfo>, DataError> {
let key = info.room_id.as_bytes(); let key = room_id.as_bytes();
let room_info: Option<RoomInfo> = self let room_info: Option<RoomInfo> = self
.roomid_roominfo .roomid_roominfo
@ -377,6 +377,40 @@ mod tests {
assert_eq!(HashSet::new(), rooms_for_user); assert_eq!(HashSet::new(), rooms_for_user);
} }
#[test]
fn insert_room_info_works() {
let rooms = create_test_instance();
let info = RoomInfo {
room_id: matrix_sdk::identifiers::room_id!("!fakeroom:example.com")
.as_str()
.to_owned(),
room_name: "fake room name".to_owned(),
};
rooms
.insert_room_info(&info)
.expect("Could insert room info");
let found_info = rooms
.get_room_info("!fakeroom:example.com")
.expect("Error loading room info");
assert!(found_info.is_some());
assert_eq!(info, found_info.unwrap());
}
#[test]
fn get_room_info_none_when_room_does_not_exist() {
let rooms = create_test_instance();
let found_info = rooms
.get_room_info("!fakeroom:example.com")
.expect("Error loading room info");
assert!(found_info.is_none());
}
#[test] #[test]
fn clear_info() { fn clear_info() {
let rooms = create_test_instance(); let rooms = create_test_instance();

View File

@ -1,7 +1,7 @@
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
/// RoomInfo has basic metadata about a room: its name, ID, etc. /// RoomInfo has basic metadata about a room: its name, ID, etc.
#[derive(Serialize, Deserialize, Clone, Debug)] #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct RoomInfo { pub struct RoomInfo {
pub room_id: String, pub room_id: String,
pub room_name: String, pub room_name: String,