Avatars for sliding sync DMs

This commit is contained in:
Timo Kösters 2023-08-07 17:54:08 +02:00
parent c1e2ffc0cd
commit d82c26f0a9
No known key found for this signature in database
GPG key ID: 0B25E636FBA7E4CB
4 changed files with 80 additions and 49 deletions

View file

@ -9,6 +9,7 @@ use lru_cache::LruCache;
use ruma::{
events::{
room::{
avatar::RoomAvatarEventContent,
history_visibility::{HistoryVisibility, RoomHistoryVisibilityEventContent},
member::{MembershipState, RoomMemberEventContent},
name::RoomNameEventContent,
@ -283,6 +284,17 @@ impl Service {
})
}
pub fn get_avatar(&self, room_id: &RoomId) -> Result<Option<RoomAvatarEventContent>> {
services()
.rooms
.state_accessor
.room_state_get(&room_id, &StateEventType::RoomAvatar, "")?
.map_or(Ok(None), |s| {
serde_json::from_str(s.content.get())
.map_err(|_| Error::bad_database("Invalid room avatar event in database."))
})
}
pub fn get_member(
&self,
room_id: &RoomId,