Can get the list of joined rooms by user
This commit is contained in:
parent
95ca1f0ba6
commit
ff43364df3
@ -57,6 +57,7 @@ async fn main() -> std::io::Result<()> {
|
|||||||
.route("/api", web::get().to(api::api_home))
|
.route("/api", web::get().to(api::api_home))
|
||||||
.route("/api", web::post().to(api::api_home))
|
.route("/api", web::post().to(api::api_home))
|
||||||
.route("/api/account/whoami", web::get().to(api::account::who_am_i))
|
.route("/api/account/whoami", web::get().to(api::account::who_am_i))
|
||||||
|
.route("/api/room/joined", web::get().to(api::room::joined_rooms))
|
||||||
.route("/api/room/{room_id}", web::get().to(api::room::info))
|
.route("/api/room/{room_id}", web::get().to(api::room::info))
|
||||||
.route(
|
.route(
|
||||||
"/api/media/{server_name}/{media_id}/download",
|
"/api/media/{server_name}/{media_id}/download",
|
||||||
|
@ -2,11 +2,27 @@ use crate::extractors::client_auth::APIClientAuth;
|
|||||||
use crate::server::{HttpFailure, HttpResult};
|
use crate::server::{HttpFailure, HttpResult};
|
||||||
use crate::utils::matrix_utils::ApiMxcURI;
|
use crate::utils::matrix_utils::ApiMxcURI;
|
||||||
use actix_web::{web, HttpResponse};
|
use actix_web::{web, HttpResponse};
|
||||||
use ruma::api::client::state;
|
use ruma::api::client::{membership, state};
|
||||||
use ruma::events::StateEventType;
|
use ruma::events::StateEventType;
|
||||||
use ruma::{OwnedMxcUri, OwnedRoomId};
|
use ruma::{OwnedMxcUri, OwnedRoomId};
|
||||||
use serde::de::DeserializeOwned;
|
use serde::de::DeserializeOwned;
|
||||||
|
|
||||||
|
#[derive(serde::Serialize)]
|
||||||
|
struct GetRoomsMembershipsResponse {
|
||||||
|
rooms: Vec<OwnedRoomId>,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get the list of rooms the user has joined
|
||||||
|
pub async fn joined_rooms(auth: APIClientAuth) -> HttpResult {
|
||||||
|
let res = auth
|
||||||
|
.send_request(membership::joined_rooms::v3::Request::default())
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(HttpResponse::Ok().json(GetRoomsMembershipsResponse {
|
||||||
|
rooms: res.joined_rooms,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(serde::Deserialize)]
|
#[derive(serde::Deserialize)]
|
||||||
pub struct RoomIDInPath {
|
pub struct RoomIDInPath {
|
||||||
room_id: OwnedRoomId,
|
room_id: OwnedRoomId,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user