[fractal] API, room: use endpoint in set_room_avatar
- From: Daniel Garcia Moreno <danigm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal] API, room: use endpoint in set_room_avatar
- Date: Thu, 2 Apr 2020 10:39:16 +0000 (UTC)
commit 5d4b70002aa9e4d44c99ddebd68b9128f7140f83
Author: Alejandro DomÃnguez <adomu net-c com>
Date: Tue Mar 10 00:47:54 2020 +0100
API, room: use endpoint in set_room_avatar
fractal-matrix-api/src/backend/mod.rs | 7 +++++--
fractal-matrix-api/src/backend/room.rs | 38 ++++++++++------------------------
2 files changed, 16 insertions(+), 29 deletions(-)
---
diff --git a/fractal-matrix-api/src/backend/mod.rs b/fractal-matrix-api/src/backend/mod.rs
index c1cb6349..5a530ca5 100644
--- a/fractal-matrix-api/src/backend/mod.rs
+++ b/fractal-matrix-api/src/backend/mod.rs
@@ -320,8 +320,11 @@ impl Backend {
});
}
Ok(BKCommand::SetRoomAvatar(server, access_token, room_id, fname)) => {
- let r = room::set_room_avatar(self, server, access_token, room_id, fname);
- bkerror2!(r, tx, BKResponse::SetRoomAvatar);
+ thread::spawn(move || {
+ let query = room::set_room_avatar(server, access_token, room_id, fname);
+ tx.send(BKResponse::SetRoomAvatar(query))
+ .expect_log("Connection closed");
+ });
}
Ok(BKCommand::AttachFile(server, access_token, msg)) => {
let r = room::attach_file(self, server, access_token, msg);
diff --git a/fractal-matrix-api/src/backend/room.rs b/fractal-matrix-api/src/backend/room.rs
index 279a1d77..2af87ef6 100644
--- a/fractal-matrix-api/src/backend/room.rs
+++ b/fractal-matrix-api/src/backend/room.rs
@@ -490,38 +490,22 @@ pub fn set_room_topic(
}
pub fn set_room_avatar(
- bk: &Backend,
- baseu: Url,
- tk: AccessToken,
+ base: Url,
+ access_token: AccessToken,
room_id: RoomId,
avatar: String,
) -> Result<(), Error> {
- let roomurl = bk.url(
- baseu.clone(),
- &tk,
- &format!("rooms/{}/state/m.room.avatar", room_id),
- vec![],
- )?;
-
- let tx = bk.tx.clone();
- thread::spawn(move || {
- let query = upload_file(baseu, tk, &avatar).and_then(|response| {
- let js = json!({ "url": response.content_uri.as_str() });
-
- HTTP_CLIENT
- .get_client()?
- .put(roomurl)
- .json(&js)
- .send()
- .map_err(Into::into)
- .and(Ok(()))
- });
+ let params = CreateStateEventsForKeyParameters {
+ access_token: access_token.clone(),
+ };
- tx.send(BKResponse::SetRoomAvatar(query))
- .expect_log("Connection closed");
- });
+ upload_file(base.clone(), access_token, &avatar).and_then(|response| {
+ let body = json!({ "url": response.content_uri.as_str() });
+ let request = create_state_events_for_key(base, ¶ms, &body, &room_id, "m.room.avatar")?;
+ let _ = HTTP_CLIENT.get_client()?.execute(request)?;
- Ok(())
+ Ok(())
+ })
}
pub fn attach_file(
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]