refactor get_room_topic
into 1 single function
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
88d038ffec
commit
fcdf1463ef
3 changed files with 16 additions and 20 deletions
|
@ -13,7 +13,6 @@ use ruma::{
|
||||||
avatar::RoomAvatarEventContent,
|
avatar::RoomAvatarEventContent,
|
||||||
create::RoomCreateEventContent,
|
create::RoomCreateEventContent,
|
||||||
join_rules::{JoinRule, RoomJoinRulesEventContent},
|
join_rules::{JoinRule, RoomJoinRulesEventContent},
|
||||||
topic::RoomTopicEventContent,
|
|
||||||
},
|
},
|
||||||
StateEventType,
|
StateEventType,
|
||||||
},
|
},
|
||||||
|
@ -243,15 +242,7 @@ pub(crate) async fn get_public_rooms_filtered_helper(
|
||||||
topic: services()
|
topic: services()
|
||||||
.rooms
|
.rooms
|
||||||
.state_accessor
|
.state_accessor
|
||||||
.room_state_get(&room_id, &StateEventType::RoomTopic, "")?
|
.get_room_topic(&room_id)
|
||||||
.map_or(Ok(None), |s| {
|
|
||||||
serde_json::from_str(s.content.get())
|
|
||||||
.map(|c: RoomTopicEventContent| Some(c.topic))
|
|
||||||
.map_err(|e| {
|
|
||||||
error!("Invalid room topic event in database for room {room_id}: {e}");
|
|
||||||
Error::bad_database("Invalid room topic event in database.")
|
|
||||||
})
|
|
||||||
})
|
|
||||||
.unwrap_or(None),
|
.unwrap_or(None),
|
||||||
world_readable: services().rooms.state_accessor.is_world_readable(&room_id)?,
|
world_readable: services().rooms.state_accessor.is_world_readable(&room_id)?,
|
||||||
guest_can_join: services()
|
guest_can_join: services()
|
||||||
|
|
|
@ -17,7 +17,6 @@ use ruma::{
|
||||||
avatar::RoomAvatarEventContent,
|
avatar::RoomAvatarEventContent,
|
||||||
create::RoomCreateEventContent,
|
create::RoomCreateEventContent,
|
||||||
join_rules::{AllowRule, JoinRule, RoomJoinRulesEventContent, RoomMembership},
|
join_rules::{AllowRule, JoinRule, RoomJoinRulesEventContent, RoomMembership},
|
||||||
topic::RoomTopicEventContent,
|
|
||||||
},
|
},
|
||||||
space::child::{HierarchySpaceChildEvent, SpaceChildEventContent},
|
space::child::{HierarchySpaceChildEvent, SpaceChildEventContent},
|
||||||
StateEventType,
|
StateEventType,
|
||||||
|
@ -573,15 +572,7 @@ impl Service {
|
||||||
topic: services()
|
topic: services()
|
||||||
.rooms
|
.rooms
|
||||||
.state_accessor
|
.state_accessor
|
||||||
.room_state_get(room_id, &StateEventType::RoomTopic, "")?
|
.get_room_topic(room_id)
|
||||||
.map_or(Ok(None), |s| {
|
|
||||||
serde_json::from_str(s.content.get())
|
|
||||||
.map(|c: RoomTopicEventContent| Some(c.topic))
|
|
||||||
.map_err(|_| {
|
|
||||||
error!("Invalid room topic event in database for room {}", room_id);
|
|
||||||
Error::bad_database("Invalid room topic event in database.")
|
|
||||||
})
|
|
||||||
})
|
|
||||||
.unwrap_or(None),
|
.unwrap_or(None),
|
||||||
world_readable: services().rooms.state_accessor.is_world_readable(room_id)?,
|
world_readable: services().rooms.state_accessor.is_world_readable(room_id)?,
|
||||||
guest_can_join: services().rooms.state_accessor.guest_can_join(room_id)?,
|
guest_can_join: services().rooms.state_accessor.guest_can_join(room_id)?,
|
||||||
|
|
|
@ -15,6 +15,7 @@ use ruma::{
|
||||||
history_visibility::{HistoryVisibility, RoomHistoryVisibilityEventContent},
|
history_visibility::{HistoryVisibility, RoomHistoryVisibilityEventContent},
|
||||||
member::{MembershipState, RoomMemberEventContent},
|
member::{MembershipState, RoomMemberEventContent},
|
||||||
name::RoomNameEventContent,
|
name::RoomNameEventContent,
|
||||||
|
topic::RoomTopicEventContent,
|
||||||
},
|
},
|
||||||
StateEventType,
|
StateEventType,
|
||||||
},
|
},
|
||||||
|
@ -341,4 +342,17 @@ impl Service {
|
||||||
.map_err(|_| Error::bad_database("Invalid canonical alias event in database."))
|
.map_err(|_| Error::bad_database("Invalid canonical alias event in database."))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Gets the room topic
|
||||||
|
pub fn get_room_topic(&self, room_id: &RoomId) -> Result<Option<String>, Error> {
|
||||||
|
self.room_state_get(room_id, &StateEventType::RoomTopic, "")?
|
||||||
|
.map_or(Ok(None), |s| {
|
||||||
|
serde_json::from_str(s.content.get())
|
||||||
|
.map(|c: RoomTopicEventContent| Some(c.topic))
|
||||||
|
.map_err(|e| {
|
||||||
|
error!("Invalid room topic event in database for room {room_id}: {e}");
|
||||||
|
Error::bad_database("Invalid room topic event in database.")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue