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::post().to(api::api_home))
|
||||
.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/media/{server_name}/{media_id}/download",
|
||||
|
@ -2,11 +2,27 @@ use crate::extractors::client_auth::APIClientAuth;
|
||||
use crate::server::{HttpFailure, HttpResult};
|
||||
use crate::utils::matrix_utils::ApiMxcURI;
|
||||
use actix_web::{web, HttpResponse};
|
||||
use ruma::api::client::state;
|
||||
use ruma::api::client::{membership, state};
|
||||
use ruma::events::StateEventType;
|
||||
use ruma::{OwnedMxcUri, OwnedRoomId};
|
||||
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)]
|
||||
pub struct RoomIDInPath {
|
||||
room_id: OwnedRoomId,
|
||||
|
Loading…
x
Reference in New Issue
Block a user