improvement: flush after every request that manipulates the db
parent
b2a1505535
commit
6dbe195695
|
@ -36,7 +36,7 @@ const GUEST_NAME_LENGTH: usize = 10;
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/register/available", data = "<body>")
|
get("/_matrix/client/r0/register/available", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_register_available_route(
|
pub async fn get_register_available_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_username_availability::Request<'_>>,
|
body: Ruma<get_username_availability::Request<'_>>,
|
||||||
) -> ConduitResult<get_username_availability::Response> {
|
) -> ConduitResult<get_username_availability::Response> {
|
||||||
|
@ -466,6 +466,8 @@ pub async fn register_route(
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(register::Response {
|
Ok(register::Response {
|
||||||
access_token: Some(token),
|
access_token: Some(token),
|
||||||
user_id,
|
user_id,
|
||||||
|
@ -485,7 +487,7 @@ pub async fn register_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/account/password", data = "<body>")
|
post("/_matrix/client/r0/account/password", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn change_password_route(
|
pub async fn change_password_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<change_password::Request<'_>>,
|
body: Ruma<change_password::Request<'_>>,
|
||||||
) -> ConduitResult<change_password::Response> {
|
) -> ConduitResult<change_password::Response> {
|
||||||
|
@ -535,6 +537,8 @@ pub fn change_password_route(
|
||||||
db.users.remove_device(&sender_user, &id)?;
|
db.users.remove_device(&sender_user, &id)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(change_password::Response.into())
|
Ok(change_password::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -547,7 +551,7 @@ pub fn change_password_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/account/whoami", data = "<body>")
|
get("/_matrix/client/r0/account/whoami", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn whoami_route(body: Ruma<whoami::Request>) -> ConduitResult<whoami::Response> {
|
pub async fn whoami_route(body: Ruma<whoami::Request>) -> ConduitResult<whoami::Response> {
|
||||||
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
|
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
|
||||||
Ok(whoami::Response {
|
Ok(whoami::Response {
|
||||||
user_id: sender_user.clone(),
|
user_id: sender_user.clone(),
|
||||||
|
@ -637,6 +641,8 @@ pub async fn deactivate_route(
|
||||||
// Remove devices and mark account as deactivated
|
// Remove devices and mark account as deactivated
|
||||||
db.users.deactivate_account(&sender_user)?;
|
db.users.deactivate_account(&sender_user)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(deactivate::Response {
|
Ok(deactivate::Response {
|
||||||
id_server_unbind_result: ThirdPartyIdRemovalStatus::NoSupport,
|
id_server_unbind_result: ThirdPartyIdRemovalStatus::NoSupport,
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ use rocket::{delete, get, put};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/r0/directory/room/<_>", data = "<body>")
|
put("/_matrix/client/r0/directory/room/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn create_alias_route(
|
pub async fn create_alias_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<create_alias::Request<'_>>,
|
body: Ruma<create_alias::Request<'_>>,
|
||||||
) -> ConduitResult<create_alias::Response> {
|
) -> ConduitResult<create_alias::Response> {
|
||||||
|
@ -29,6 +29,8 @@ pub fn create_alias_route(
|
||||||
db.rooms
|
db.rooms
|
||||||
.set_alias(&body.room_alias, Some(&body.room_id), &db.globals)?;
|
.set_alias(&body.room_alias, Some(&body.room_id), &db.globals)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(create_alias::Response::new().into())
|
Ok(create_alias::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,12 +38,14 @@ pub fn create_alias_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
delete("/_matrix/client/r0/directory/room/<_>", data = "<body>")
|
delete("/_matrix/client/r0/directory/room/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_alias_route(
|
pub async fn delete_alias_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_alias::Request<'_>>,
|
body: Ruma<delete_alias::Request<'_>>,
|
||||||
) -> ConduitResult<delete_alias::Response> {
|
) -> ConduitResult<delete_alias::Response> {
|
||||||
db.rooms.set_alias(&body.room_alias, None, &db.globals)?;
|
db.rooms.set_alias(&body.room_alias, None, &db.globals)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_alias::Response::new().into())
|
Ok(delete_alias::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ use rocket::{delete, get, post, put};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/unstable/room_keys/version", data = "<body>")
|
post("/_matrix/client/unstable/room_keys/version", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn create_backup_route(
|
pub async fn create_backup_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<create_backup::Request>,
|
body: Ruma<create_backup::Request>,
|
||||||
) -> ConduitResult<create_backup::Response> {
|
) -> ConduitResult<create_backup::Response> {
|
||||||
|
@ -26,6 +26,8 @@ pub fn create_backup_route(
|
||||||
.key_backups
|
.key_backups
|
||||||
.create_backup(&sender_user, &body.algorithm, &db.globals)?;
|
.create_backup(&sender_user, &body.algorithm, &db.globals)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(create_backup::Response { version }.into())
|
Ok(create_backup::Response { version }.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +35,7 @@ pub fn create_backup_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/unstable/room_keys/version/<_>", data = "<body>")
|
put("/_matrix/client/unstable/room_keys/version/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn update_backup_route(
|
pub async fn update_backup_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<update_backup::Request<'_>>,
|
body: Ruma<update_backup::Request<'_>>,
|
||||||
) -> ConduitResult<update_backup::Response> {
|
) -> ConduitResult<update_backup::Response> {
|
||||||
|
@ -41,6 +43,8 @@ pub fn update_backup_route(
|
||||||
db.key_backups
|
db.key_backups
|
||||||
.update_backup(&sender_user, &body.version, &body.algorithm, &db.globals)?;
|
.update_backup(&sender_user, &body.version, &body.algorithm, &db.globals)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(update_backup::Response.into())
|
Ok(update_backup::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +52,7 @@ pub fn update_backup_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/unstable/room_keys/version", data = "<body>")
|
get("/_matrix/client/unstable/room_keys/version", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_latest_backup_route(
|
pub async fn get_latest_backup_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_latest_backup::Request>,
|
body: Ruma<get_latest_backup::Request>,
|
||||||
) -> ConduitResult<get_latest_backup::Response> {
|
) -> ConduitResult<get_latest_backup::Response> {
|
||||||
|
@ -75,7 +79,7 @@ pub fn get_latest_backup_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/unstable/room_keys/version/<_>", data = "<body>")
|
get("/_matrix/client/unstable/room_keys/version/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_backup_route(
|
pub async fn get_backup_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_backup::Request<'_>>,
|
body: Ruma<get_backup::Request<'_>>,
|
||||||
) -> ConduitResult<get_backup::Response> {
|
) -> ConduitResult<get_backup::Response> {
|
||||||
|
@ -101,7 +105,7 @@ pub fn get_backup_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
delete("/_matrix/client/unstable/room_keys/version/<_>", data = "<body>")
|
delete("/_matrix/client/unstable/room_keys/version/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_backup_route(
|
pub async fn delete_backup_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_backup::Request>,
|
body: Ruma<delete_backup::Request>,
|
||||||
) -> ConduitResult<delete_backup::Response> {
|
) -> ConduitResult<delete_backup::Response> {
|
||||||
|
@ -109,6 +113,8 @@ pub fn delete_backup_route(
|
||||||
|
|
||||||
db.key_backups.delete_backup(&sender_user, &body.version)?;
|
db.key_backups.delete_backup(&sender_user, &body.version)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_backup::Response.into())
|
Ok(delete_backup::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +123,7 @@ pub fn delete_backup_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/unstable/room_keys/keys", data = "<body>")
|
put("/_matrix/client/unstable/room_keys/keys", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn add_backup_keys_route(
|
pub async fn add_backup_keys_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<add_backup_keys::Request<'_>>,
|
body: Ruma<add_backup_keys::Request<'_>>,
|
||||||
) -> ConduitResult<add_backup_keys::Response> {
|
) -> ConduitResult<add_backup_keys::Response> {
|
||||||
|
@ -136,6 +142,8 @@ pub fn add_backup_keys_route(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(add_backup_keys::Response {
|
Ok(add_backup_keys::Response {
|
||||||
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
||||||
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
||||||
|
@ -148,7 +156,7 @@ pub fn add_backup_keys_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/unstable/room_keys/keys/<_>", data = "<body>")
|
put("/_matrix/client/unstable/room_keys/keys/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn add_backup_key_sessions_route(
|
pub async fn add_backup_key_sessions_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<add_backup_key_sessions::Request>,
|
body: Ruma<add_backup_key_sessions::Request>,
|
||||||
) -> ConduitResult<add_backup_key_sessions::Response> {
|
) -> ConduitResult<add_backup_key_sessions::Response> {
|
||||||
|
@ -165,6 +173,8 @@ pub fn add_backup_key_sessions_route(
|
||||||
)?
|
)?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(add_backup_key_sessions::Response {
|
Ok(add_backup_key_sessions::Response {
|
||||||
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
||||||
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
||||||
|
@ -177,7 +187,7 @@ pub fn add_backup_key_sessions_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "<body>")
|
put("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn add_backup_key_session_route(
|
pub async fn add_backup_key_session_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<add_backup_key_session::Request>,
|
body: Ruma<add_backup_key_session::Request>,
|
||||||
) -> ConduitResult<add_backup_key_session::Response> {
|
) -> ConduitResult<add_backup_key_session::Response> {
|
||||||
|
@ -192,6 +202,8 @@ pub fn add_backup_key_session_route(
|
||||||
&db.globals,
|
&db.globals,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(add_backup_key_session::Response {
|
Ok(add_backup_key_session::Response {
|
||||||
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
||||||
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
||||||
|
@ -203,7 +215,7 @@ pub fn add_backup_key_session_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/unstable/room_keys/keys", data = "<body>")
|
get("/_matrix/client/unstable/room_keys/keys", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_backup_keys_route(
|
pub async fn get_backup_keys_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_backup_keys::Request<'_>>,
|
body: Ruma<get_backup_keys::Request<'_>>,
|
||||||
) -> ConduitResult<get_backup_keys::Response> {
|
) -> ConduitResult<get_backup_keys::Response> {
|
||||||
|
@ -218,7 +230,7 @@ pub fn get_backup_keys_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/unstable/room_keys/keys/<_>", data = "<body>")
|
get("/_matrix/client/unstable/room_keys/keys/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_backup_key_sessions_route(
|
pub async fn get_backup_key_sessions_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_backup_key_sessions::Request>,
|
body: Ruma<get_backup_key_sessions::Request>,
|
||||||
) -> ConduitResult<get_backup_key_sessions::Response> {
|
) -> ConduitResult<get_backup_key_sessions::Response> {
|
||||||
|
@ -235,7 +247,7 @@ pub fn get_backup_key_sessions_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "<body>")
|
get("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_backup_key_session_route(
|
pub async fn get_backup_key_session_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_backup_key_session::Request>,
|
body: Ruma<get_backup_key_session::Request>,
|
||||||
) -> ConduitResult<get_backup_key_session::Response> {
|
) -> ConduitResult<get_backup_key_session::Response> {
|
||||||
|
@ -252,7 +264,7 @@ pub fn get_backup_key_session_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
delete("/_matrix/client/unstable/room_keys/keys", data = "<body>")
|
delete("/_matrix/client/unstable/room_keys/keys", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_backup_keys_route(
|
pub async fn delete_backup_keys_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_backup_keys::Request>,
|
body: Ruma<delete_backup_keys::Request>,
|
||||||
) -> ConduitResult<delete_backup_keys::Response> {
|
) -> ConduitResult<delete_backup_keys::Response> {
|
||||||
|
@ -261,6 +273,8 @@ pub fn delete_backup_keys_route(
|
||||||
db.key_backups
|
db.key_backups
|
||||||
.delete_all_keys(&sender_user, &body.version)?;
|
.delete_all_keys(&sender_user, &body.version)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_backup_keys::Response {
|
Ok(delete_backup_keys::Response {
|
||||||
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
||||||
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
||||||
|
@ -272,7 +286,7 @@ pub fn delete_backup_keys_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
delete("/_matrix/client/unstable/room_keys/keys/<_>", data = "<body>")
|
delete("/_matrix/client/unstable/room_keys/keys/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_backup_key_sessions_route(
|
pub async fn delete_backup_key_sessions_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_backup_key_sessions::Request>,
|
body: Ruma<delete_backup_key_sessions::Request>,
|
||||||
) -> ConduitResult<delete_backup_key_sessions::Response> {
|
) -> ConduitResult<delete_backup_key_sessions::Response> {
|
||||||
|
@ -281,6 +295,8 @@ pub fn delete_backup_key_sessions_route(
|
||||||
db.key_backups
|
db.key_backups
|
||||||
.delete_room_keys(&sender_user, &body.version, &body.room_id)?;
|
.delete_room_keys(&sender_user, &body.version, &body.room_id)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_backup_key_sessions::Response {
|
Ok(delete_backup_key_sessions::Response {
|
||||||
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
||||||
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
||||||
|
@ -292,7 +308,7 @@ pub fn delete_backup_key_sessions_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
delete("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "<body>")
|
delete("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_backup_key_session_route(
|
pub async fn delete_backup_key_session_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_backup_key_session::Request>,
|
body: Ruma<delete_backup_key_session::Request>,
|
||||||
) -> ConduitResult<delete_backup_key_session::Response> {
|
) -> ConduitResult<delete_backup_key_session::Response> {
|
||||||
|
@ -301,6 +317,8 @@ pub fn delete_backup_key_session_route(
|
||||||
db.key_backups
|
db.key_backups
|
||||||
.delete_room_key(&sender_user, &body.version, &body.room_id, &body.session_id)?;
|
.delete_room_key(&sender_user, &body.version, &body.room_id, &body.session_id)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_backup_key_session::Response {
|
Ok(delete_backup_key_session::Response {
|
||||||
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
count: (db.key_backups.count_keys(sender_user, &body.version)? as u32).into(),
|
||||||
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
etag: db.key_backups.get_etag(sender_user, &body.version)?,
|
||||||
|
|
|
@ -9,7 +9,7 @@ use rocket::get;
|
||||||
///
|
///
|
||||||
/// Get information on this server's supported feature set and other relevent capabilities.
|
/// Get information on this server's supported feature set and other relevent capabilities.
|
||||||
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/capabilities"))]
|
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/capabilities"))]
|
||||||
pub fn get_capabilities_route() -> ConduitResult<get_capabilities::Response> {
|
pub async fn get_capabilities_route() -> ConduitResult<get_capabilities::Response> {
|
||||||
let mut available = BTreeMap::new();
|
let mut available = BTreeMap::new();
|
||||||
available.insert(
|
available.insert(
|
||||||
RoomVersionId::Version5,
|
RoomVersionId::Version5,
|
||||||
|
|
|
@ -16,7 +16,7 @@ use rocket::{get, put};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/r0/user/<_>/account_data/<_>", data = "<body>")
|
put("/_matrix/client/r0/user/<_>/account_data/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn set_global_account_data_route(
|
pub async fn set_global_account_data_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<set_global_account_data::Request<'_>>,
|
body: Ruma<set_global_account_data::Request<'_>>,
|
||||||
) -> ConduitResult<set_global_account_data::Response> {
|
) -> ConduitResult<set_global_account_data::Response> {
|
||||||
|
@ -40,6 +40,8 @@ pub fn set_global_account_data_route(
|
||||||
&db.globals,
|
&db.globals,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_global_account_data::Response.into())
|
Ok(set_global_account_data::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +49,7 @@ pub fn set_global_account_data_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/user/<_>/account_data/<_>", data = "<body>")
|
get("/_matrix/client/r0/user/<_>/account_data/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_global_account_data_route(
|
pub async fn get_global_account_data_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_global_account_data::Request<'_>>,
|
body: Ruma<get_global_account_data::Request<'_>>,
|
||||||
) -> ConduitResult<get_global_account_data::Response> {
|
) -> ConduitResult<get_global_account_data::Response> {
|
||||||
|
@ -58,5 +60,7 @@ pub fn get_global_account_data_route(
|
||||||
.get::<Raw<ruma::events::AnyBasicEvent>>(None, sender_user, body.event_type.clone().into())?
|
.get::<Raw<ruma::events::AnyBasicEvent>>(None, sender_user, body.event_type.clone().into())?
|
||||||
.ok_or(Error::BadRequest(ErrorKind::NotFound, "Data not found."))?;
|
.ok_or(Error::BadRequest(ErrorKind::NotFound, "Data not found."))?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(get_global_account_data::Response { account_data: data }.into())
|
Ok(get_global_account_data::Response { account_data: data }.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ use rocket::get;
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/context/<_>", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/context/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_context_route(
|
pub async fn get_context_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_context::Request<'_>>,
|
body: Ruma<get_context::Request<'_>>,
|
||||||
) -> ConduitResult<get_context::Response> {
|
) -> ConduitResult<get_context::Response> {
|
||||||
|
|
|
@ -16,7 +16,7 @@ use rocket::{delete, get, post, put};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/devices", data = "<body>")
|
get("/_matrix/client/r0/devices", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_devices_route(
|
pub async fn get_devices_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_devices::Request>,
|
body: Ruma<get_devices::Request>,
|
||||||
) -> ConduitResult<get_devices::Response> {
|
) -> ConduitResult<get_devices::Response> {
|
||||||
|
@ -35,7 +35,7 @@ pub fn get_devices_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/devices/<_>", data = "<body>")
|
get("/_matrix/client/r0/devices/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_device_route(
|
pub async fn get_device_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_device::Request<'_>>,
|
body: Ruma<get_device::Request<'_>>,
|
||||||
) -> ConduitResult<get_device::Response> {
|
) -> ConduitResult<get_device::Response> {
|
||||||
|
@ -53,7 +53,7 @@ pub fn get_device_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/r0/devices/<_>", data = "<body>")
|
put("/_matrix/client/r0/devices/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn update_device_route(
|
pub async fn update_device_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<update_device::Request<'_>>,
|
body: Ruma<update_device::Request<'_>>,
|
||||||
) -> ConduitResult<update_device::Response> {
|
) -> ConduitResult<update_device::Response> {
|
||||||
|
@ -69,6 +69,8 @@ pub fn update_device_route(
|
||||||
db.users
|
db.users
|
||||||
.update_device_metadata(&sender_user, &body.device_id, &device)?;
|
.update_device_metadata(&sender_user, &body.device_id, &device)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(update_device::Response.into())
|
Ok(update_device::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +78,7 @@ pub fn update_device_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
delete("/_matrix/client/r0/devices/<_>", data = "<body>")
|
delete("/_matrix/client/r0/devices/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_device_route(
|
pub async fn delete_device_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_device::Request<'_>>,
|
body: Ruma<delete_device::Request<'_>>,
|
||||||
) -> ConduitResult<delete_device::Response> {
|
) -> ConduitResult<delete_device::Response> {
|
||||||
|
@ -115,6 +117,8 @@ pub fn delete_device_route(
|
||||||
|
|
||||||
db.users.remove_device(&sender_user, &body.device_id)?;
|
db.users.remove_device(&sender_user, &body.device_id)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_device::Response.into())
|
Ok(delete_device::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +126,7 @@ pub fn delete_device_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/delete_devices", data = "<body>")
|
post("/_matrix/client/r0/delete_devices", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_devices_route(
|
pub async fn delete_devices_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_devices::Request<'_>>,
|
body: Ruma<delete_devices::Request<'_>>,
|
||||||
) -> ConduitResult<delete_devices::Response> {
|
) -> ConduitResult<delete_devices::Response> {
|
||||||
|
@ -163,5 +167,7 @@ pub fn delete_devices_route(
|
||||||
db.users.remove_device(&sender_user, &device_id)?
|
db.users.remove_device(&sender_user, &device_id)?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_devices::Response.into())
|
Ok(delete_devices::Response.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,6 +87,8 @@ pub async fn set_room_visibility_route(
|
||||||
room::Visibility::Private => db.rooms.set_public(&body.room_id, false)?,
|
room::Visibility::Private => db.rooms.set_public(&body.room_id, false)?,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_room_visibility::Response.into())
|
Ok(set_room_visibility::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ use ruma::api::client::r0::filter::{self, create_filter, get_filter};
|
||||||
use rocket::{get, post};
|
use rocket::{get, post};
|
||||||
|
|
||||||
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/user/<_>/filter/<_>"))]
|
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/user/<_>/filter/<_>"))]
|
||||||
pub fn get_filter_route() -> ConduitResult<get_filter::Response> {
|
pub async fn get_filter_route() -> ConduitResult<get_filter::Response> {
|
||||||
// TODO
|
// TODO
|
||||||
Ok(get_filter::Response::new(filter::IncomingFilterDefinition {
|
Ok(get_filter::Response::new(filter::IncomingFilterDefinition {
|
||||||
event_fields: None,
|
event_fields: None,
|
||||||
|
@ -18,7 +18,7 @@ pub fn get_filter_route() -> ConduitResult<get_filter::Response> {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(feature = "conduit_bin", post("/_matrix/client/r0/user/<_>/filter"))]
|
#[cfg_attr(feature = "conduit_bin", post("/_matrix/client/r0/user/<_>/filter"))]
|
||||||
pub fn create_filter_route() -> ConduitResult<create_filter::Response> {
|
pub async fn create_filter_route() -> ConduitResult<create_filter::Response> {
|
||||||
// TODO
|
// TODO
|
||||||
Ok(create_filter::Response::new(utils::random_string(10)).into())
|
Ok(create_filter::Response::new(utils::random_string(10)).into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ use rocket::{get, post};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/keys/upload", data = "<body>")
|
post("/_matrix/client/r0/keys/upload", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn upload_keys_route(
|
pub async fn upload_keys_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<upload_keys::Request<'_>>,
|
body: Ruma<upload_keys::Request<'_>>,
|
||||||
) -> ConduitResult<upload_keys::Response> {
|
) -> ConduitResult<upload_keys::Response> {
|
||||||
|
@ -58,6 +58,8 @@ pub fn upload_keys_route(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(upload_keys::Response {
|
Ok(upload_keys::Response {
|
||||||
one_time_key_counts: db.users.count_one_time_keys(sender_user, sender_device)?,
|
one_time_key_counts: db.users.count_one_time_keys(sender_user, sender_device)?,
|
||||||
}
|
}
|
||||||
|
@ -68,7 +70,7 @@ pub fn upload_keys_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/keys/query", data = "<body>")
|
post("/_matrix/client/r0/keys/query", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_keys_route(
|
pub async fn get_keys_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_keys::Request<'_>>,
|
body: Ruma<get_keys::Request<'_>>,
|
||||||
) -> ConduitResult<get_keys::Response> {
|
) -> ConduitResult<get_keys::Response> {
|
||||||
|
@ -148,7 +150,7 @@ pub fn get_keys_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/keys/claim", data = "<body>")
|
post("/_matrix/client/r0/keys/claim", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn claim_keys_route(
|
pub async fn claim_keys_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<claim_keys::Request>,
|
body: Ruma<claim_keys::Request>,
|
||||||
) -> ConduitResult<claim_keys::Response> {
|
) -> ConduitResult<claim_keys::Response> {
|
||||||
|
@ -168,6 +170,8 @@ pub fn claim_keys_route(
|
||||||
one_time_keys.insert(user_id.clone(), container);
|
one_time_keys.insert(user_id.clone(), container);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(claim_keys::Response {
|
Ok(claim_keys::Response {
|
||||||
failures: BTreeMap::new(),
|
failures: BTreeMap::new(),
|
||||||
one_time_keys,
|
one_time_keys,
|
||||||
|
@ -179,7 +183,7 @@ pub fn claim_keys_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/unstable/keys/device_signing/upload", data = "<body>")
|
post("/_matrix/client/unstable/keys/device_signing/upload", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn upload_signing_keys_route(
|
pub async fn upload_signing_keys_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<upload_signing_keys::Request<'_>>,
|
body: Ruma<upload_signing_keys::Request<'_>>,
|
||||||
) -> ConduitResult<upload_signing_keys::Response> {
|
) -> ConduitResult<upload_signing_keys::Response> {
|
||||||
|
@ -227,6 +231,8 @@ pub fn upload_signing_keys_route(
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(upload_signing_keys::Response.into())
|
Ok(upload_signing_keys::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +240,7 @@ pub fn upload_signing_keys_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/unstable/keys/signatures/upload", data = "<body>")
|
post("/_matrix/client/unstable/keys/signatures/upload", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn upload_signatures_route(
|
pub async fn upload_signatures_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<upload_signatures::Request>,
|
body: Ruma<upload_signatures::Request>,
|
||||||
) -> ConduitResult<upload_signatures::Response> {
|
) -> ConduitResult<upload_signatures::Response> {
|
||||||
|
@ -285,6 +291,8 @@ pub fn upload_signatures_route(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(upload_signatures::Response.into())
|
Ok(upload_signatures::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +300,7 @@ pub fn upload_signatures_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/keys/changes", data = "<body>")
|
get("/_matrix/client/r0/keys/changes", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_key_changes_route(
|
pub async fn get_key_changes_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_key_changes::Request<'_>>,
|
body: Ruma<get_key_changes::Request<'_>>,
|
||||||
) -> ConduitResult<get_key_changes::Response> {
|
) -> ConduitResult<get_key_changes::Response> {
|
||||||
|
|
|
@ -14,7 +14,7 @@ use std::convert::TryInto;
|
||||||
const MXC_LENGTH: usize = 32;
|
const MXC_LENGTH: usize = 32;
|
||||||
|
|
||||||
#[cfg_attr(feature = "conduit_bin", get("/_matrix/media/r0/config"))]
|
#[cfg_attr(feature = "conduit_bin", get("/_matrix/media/r0/config"))]
|
||||||
pub fn get_media_config_route(
|
pub async fn get_media_config_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
) -> ConduitResult<get_media_config::Response> {
|
) -> ConduitResult<get_media_config::Response> {
|
||||||
Ok(get_media_config::Response {
|
Ok(get_media_config::Response {
|
||||||
|
@ -27,7 +27,7 @@ pub fn get_media_config_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/media/r0/upload", data = "<body>")
|
post("/_matrix/media/r0/upload", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn create_content_route(
|
pub async fn create_content_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<create_content::Request<'_>>,
|
body: Ruma<create_content::Request<'_>>,
|
||||||
) -> ConduitResult<create_content::Response> {
|
) -> ConduitResult<create_content::Response> {
|
||||||
|
@ -43,6 +43,8 @@ pub fn create_content_route(
|
||||||
&body.file,
|
&body.file,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(create_content::Response { content_uri: mxc }.into())
|
Ok(create_content::Response { content_uri: mxc }.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,17 +65,19 @@ pub async fn join_room_by_id_or_alias_route(
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(join_room_by_id_or_alias::Response {
|
let join_room_response = join_room_by_id_helper(
|
||||||
room_id: join_room_by_id_helper(
|
|
||||||
&db,
|
&db,
|
||||||
body.sender_user.as_ref(),
|
body.sender_user.as_ref(),
|
||||||
&room_id,
|
&room_id,
|
||||||
&servers,
|
&servers,
|
||||||
body.third_party_signed.as_ref(),
|
body.third_party_signed.as_ref(),
|
||||||
)
|
)
|
||||||
.await?
|
.await?;
|
||||||
.0
|
|
||||||
.room_id,
|
db.flush().await?;
|
||||||
|
|
||||||
|
Ok(join_room_by_id_or_alias::Response {
|
||||||
|
room_id: join_room_response.0.room_id,
|
||||||
}
|
}
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
|
@ -124,6 +126,8 @@ pub async fn leave_room_route(
|
||||||
&db.account_data,
|
&db.account_data,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(leave_room::Response::new().into())
|
Ok(leave_room::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,6 +164,8 @@ pub async fn invite_user_route(
|
||||||
&db.account_data,
|
&db.account_data,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(invite_user::Response.into())
|
Ok(invite_user::Response.into())
|
||||||
} else {
|
} else {
|
||||||
Err(Error::BadRequest(ErrorKind::NotFound, "User not found."))
|
Err(Error::BadRequest(ErrorKind::NotFound, "User not found."))
|
||||||
|
@ -211,6 +217,8 @@ pub async fn kick_user_route(
|
||||||
&db.account_data,
|
&db.account_data,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(kick_user::Response::new().into())
|
Ok(kick_user::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,6 +275,8 @@ pub async fn ban_user_route(
|
||||||
&db.account_data,
|
&db.account_data,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(ban_user::Response::new().into())
|
Ok(ban_user::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,6 +324,8 @@ pub async fn unban_user_route(
|
||||||
&db.account_data,
|
&db.account_data,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(unban_user::Response::new().into())
|
Ok(unban_user::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -321,7 +333,7 @@ pub async fn unban_user_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/rooms/<_>/forget", data = "<body>")
|
post("/_matrix/client/r0/rooms/<_>/forget", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn forget_room_route(
|
pub async fn forget_room_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<forget_room::Request<'_>>,
|
body: Ruma<forget_room::Request<'_>>,
|
||||||
) -> ConduitResult<forget_room::Response> {
|
) -> ConduitResult<forget_room::Response> {
|
||||||
|
@ -329,6 +341,8 @@ pub fn forget_room_route(
|
||||||
|
|
||||||
db.rooms.forget(&body.room_id, &sender_user)?;
|
db.rooms.forget(&body.room_id, &sender_user)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(forget_room::Response::new().into())
|
Ok(forget_room::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,7 +350,7 @@ pub fn forget_room_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/joined_rooms", data = "<body>")
|
get("/_matrix/client/r0/joined_rooms", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn joined_rooms_route(
|
pub async fn joined_rooms_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<joined_rooms::Request>,
|
body: Ruma<joined_rooms::Request>,
|
||||||
) -> ConduitResult<joined_rooms::Response> {
|
) -> ConduitResult<joined_rooms::Response> {
|
||||||
|
@ -356,7 +370,7 @@ pub fn joined_rooms_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/members", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/members", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_member_events_route(
|
pub async fn get_member_events_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_member_events::Request<'_>>,
|
body: Ruma<get_member_events::Request<'_>>,
|
||||||
) -> ConduitResult<get_member_events::Response> {
|
) -> ConduitResult<get_member_events::Response> {
|
||||||
|
@ -384,7 +398,7 @@ pub fn get_member_events_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/joined_members", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/joined_members", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn joined_members_route(
|
pub async fn joined_members_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<joined_members::Request<'_>>,
|
body: Ruma<joined_members::Request<'_>>,
|
||||||
) -> ConduitResult<joined_members::Response> {
|
) -> ConduitResult<joined_members::Response> {
|
||||||
|
|
|
@ -77,6 +77,8 @@ pub async fn send_message_event_route(
|
||||||
event_id.as_bytes(),
|
event_id.as_bytes(),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(send_message_event::Response::new(event_id).into())
|
Ok(send_message_event::Response::new(event_id).into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +86,7 @@ pub async fn send_message_event_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/messages", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/messages", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_message_events_route(
|
pub async fn get_message_events_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_message_events::Request<'_>>,
|
body: Ruma<get_message_events::Request<'_>>,
|
||||||
) -> ConduitResult<get_message_events::Response> {
|
) -> ConduitResult<get_message_events::Response> {
|
||||||
|
|
|
@ -75,6 +75,6 @@ const SESSION_ID_LENGTH: usize = 256;
|
||||||
|
|
||||||
#[cfg(feature = "conduit_bin")]
|
#[cfg(feature = "conduit_bin")]
|
||||||
#[options("/<_..>")]
|
#[options("/<_..>")]
|
||||||
pub fn options_route() -> ConduitResult<send_event_to_device::Response> {
|
pub async fn options_route() -> ConduitResult<send_event_to_device::Response> {
|
||||||
Ok(send_event_to_device::Response.into())
|
Ok(send_event_to_device::Response.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ use rocket::put;
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/r0/presence/<_>/status", data = "<body>")
|
put("/_matrix/client/r0/presence/<_>/status", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn set_presence_route(
|
pub async fn set_presence_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<set_presence::Request<'_>>,
|
body: Ruma<set_presence::Request<'_>>,
|
||||||
) -> ConduitResult<set_presence::Response> {
|
) -> ConduitResult<set_presence::Response> {
|
||||||
|
@ -41,5 +41,7 @@ pub fn set_presence_route(
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_presence::Response.into())
|
Ok(set_presence::Response.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,6 +90,8 @@ pub async fn set_displayname_route(
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_display_name::Response.into())
|
Ok(set_display_name::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +99,7 @@ pub async fn set_displayname_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/profile/<_>/displayname", data = "<body>")
|
get("/_matrix/client/r0/profile/<_>/displayname", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_displayname_route(
|
pub async fn get_displayname_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_display_name::Request<'_>>,
|
body: Ruma<get_display_name::Request<'_>>,
|
||||||
) -> ConduitResult<get_display_name::Response> {
|
) -> ConduitResult<get_display_name::Response> {
|
||||||
|
@ -182,6 +184,8 @@ pub async fn set_avatar_url_route(
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_avatar_url::Response.into())
|
Ok(set_avatar_url::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +193,7 @@ pub async fn set_avatar_url_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/profile/<_>/avatar_url", data = "<body>")
|
get("/_matrix/client/r0/profile/<_>/avatar_url", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_avatar_url_route(
|
pub async fn get_avatar_url_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_avatar_url::Request<'_>>,
|
body: Ruma<get_avatar_url::Request<'_>>,
|
||||||
) -> ConduitResult<get_avatar_url::Response> {
|
) -> ConduitResult<get_avatar_url::Response> {
|
||||||
|
@ -203,7 +207,7 @@ pub fn get_avatar_url_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/profile/<_>", data = "<body>")
|
get("/_matrix/client/r0/profile/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_profile_route(
|
pub async fn get_profile_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_profile::Request<'_>>,
|
body: Ruma<get_profile::Request<'_>>,
|
||||||
) -> ConduitResult<get_profile::Response> {
|
) -> ConduitResult<get_profile::Response> {
|
||||||
|
|
|
@ -16,7 +16,7 @@ use rocket::{get, post, put};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/pushrules", data = "<body>")
|
get("/_matrix/client/r0/pushrules", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_pushrules_all_route(
|
pub async fn get_pushrules_all_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_pushrules_all::Request>,
|
body: Ruma<get_pushrules_all::Request>,
|
||||||
) -> ConduitResult<get_pushrules_all::Response> {
|
) -> ConduitResult<get_pushrules_all::Response> {
|
||||||
|
@ -40,11 +40,15 @@ pub fn get_pushrules_all_route(
|
||||||
"/_matrix/client/r0/pushrules/<_>/<_>/<_>",
|
"/_matrix/client/r0/pushrules/<_>/<_>/<_>",
|
||||||
//data = "<body>"
|
//data = "<body>"
|
||||||
))]
|
))]
|
||||||
pub fn set_pushrule_route(//db: State<'_, Database>,
|
pub async fn set_pushrule_route(
|
||||||
|
db: State<'_, Database>,
|
||||||
//body: Ruma<set_pushrule::Request>,
|
//body: Ruma<set_pushrule::Request>,
|
||||||
) -> ConduitResult<set_pushrule::Response> {
|
) -> ConduitResult<set_pushrule::Response> {
|
||||||
// TODO
|
// TODO
|
||||||
warn!("TODO: set_pushrule_route");
|
warn!("TODO: set_pushrule_route");
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_pushrule::Response.into())
|
Ok(set_pushrule::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,14 +56,19 @@ pub fn set_pushrule_route(//db: State<'_, Database>,
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/r0/pushrules/<_>/<_>/<_>/enabled")
|
put("/_matrix/client/r0/pushrules/<_>/<_>/<_>/enabled")
|
||||||
)]
|
)]
|
||||||
pub fn set_pushrule_enabled_route() -> ConduitResult<set_pushrule_enabled::Response> {
|
pub async fn set_pushrule_enabled_route(
|
||||||
|
db: State<'_, Database>,
|
||||||
|
) -> ConduitResult<set_pushrule_enabled::Response> {
|
||||||
// TODO
|
// TODO
|
||||||
warn!("TODO: set_pushrule_enabled_route");
|
warn!("TODO: set_pushrule_enabled_route");
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_pushrule_enabled::Response.into())
|
Ok(set_pushrule_enabled::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/pushers"))]
|
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/pushers"))]
|
||||||
pub fn get_pushers_route() -> ConduitResult<get_pushers::Response> {
|
pub async fn get_pushers_route() -> ConduitResult<get_pushers::Response> {
|
||||||
Ok(get_pushers::Response {
|
Ok(get_pushers::Response {
|
||||||
pushers: Vec::new(),
|
pushers: Vec::new(),
|
||||||
}
|
}
|
||||||
|
@ -67,7 +76,9 @@ pub fn get_pushers_route() -> ConduitResult<get_pushers::Response> {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(feature = "conduit_bin", post("/_matrix/client/r0/pushers/set"))]
|
#[cfg_attr(feature = "conduit_bin", post("/_matrix/client/r0/pushers/set"))]
|
||||||
pub fn set_pushers_route() -> ConduitResult<get_pushers::Response> {
|
pub async fn set_pushers_route(db: State<'_, Database>) -> ConduitResult<get_pushers::Response> {
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(get_pushers::Response {
|
Ok(get_pushers::Response {
|
||||||
pushers: Vec::new(),
|
pushers: Vec::new(),
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ use std::{collections::BTreeMap, time::SystemTime};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/rooms/<_>/read_markers", data = "<body>")
|
post("/_matrix/client/r0/rooms/<_>/read_markers", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn set_read_marker_route(
|
pub async fn set_read_marker_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<set_read_marker::Request<'_>>,
|
body: Ruma<set_read_marker::Request<'_>>,
|
||||||
) -> ConduitResult<set_read_marker::Response> {
|
) -> ConduitResult<set_read_marker::Response> {
|
||||||
|
@ -71,5 +71,8 @@ pub fn set_read_marker_route(
|
||||||
&db.globals,
|
&db.globals,
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(set_read_marker::Response.into())
|
Ok(set_read_marker::Response.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,5 +36,7 @@ pub async fn redact_event_route(
|
||||||
&db.account_data,
|
&db.account_data,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(redact_event::Response { event_id }.into())
|
Ok(redact_event::Response { event_id }.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -313,6 +313,8 @@ pub async fn create_room_route(
|
||||||
db.rooms.set_public(&room_id, true)?;
|
db.rooms.set_public(&room_id, true)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(create_room::Response::new(room_id).into())
|
Ok(create_room::Response::new(room_id).into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -320,7 +322,7 @@ pub async fn create_room_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/event/<_>", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/event/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_room_event_route(
|
pub async fn get_room_event_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_room_event::Request<'_>>,
|
body: Ruma<get_room_event::Request<'_>>,
|
||||||
) -> ConduitResult<get_room_event::Response> {
|
) -> ConduitResult<get_room_event::Response> {
|
||||||
|
@ -531,6 +533,8 @@ pub async fn upgrade_room_route(
|
||||||
&db.account_data,
|
&db.account_data,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
// Return the replacement room id
|
// Return the replacement room id
|
||||||
Ok(upgrade_room::Response { replacement_room }.into())
|
Ok(upgrade_room::Response { replacement_room }.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ use std::collections::BTreeMap;
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/search", data = "<body>")
|
post("/_matrix/client/r0/search", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn search_events_route(
|
pub async fn search_events_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<search_events::Request<'_>>,
|
body: Ruma<search_events::Request<'_>>,
|
||||||
) -> ConduitResult<search_events::Response> {
|
) -> ConduitResult<search_events::Response> {
|
||||||
|
|
|
@ -16,7 +16,7 @@ use rocket::{get, post};
|
||||||
/// Get the homeserver's supported login types. One of these should be used as the `type` field
|
/// Get the homeserver's supported login types. One of these should be used as the `type` field
|
||||||
/// when logging in.
|
/// when logging in.
|
||||||
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/login"))]
|
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/login"))]
|
||||||
pub fn get_login_types_route() -> ConduitResult<get_login_types::Response> {
|
pub async fn get_login_types_route() -> ConduitResult<get_login_types::Response> {
|
||||||
Ok(get_login_types::Response::new(vec![get_login_types::LoginType::Password]).into())
|
Ok(get_login_types::Response::new(vec![get_login_types::LoginType::Password]).into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ pub fn get_login_types_route() -> ConduitResult<get_login_types::Response> {
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/login", data = "<body>")
|
post("/_matrix/client/r0/login", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn login_route(
|
pub async fn login_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<login::Request<'_>>,
|
body: Ruma<login::Request<'_>>,
|
||||||
) -> ConduitResult<login::Response> {
|
) -> ConduitResult<login::Response> {
|
||||||
|
@ -93,6 +93,8 @@ pub fn login_route(
|
||||||
body.initial_device_display_name.clone(),
|
body.initial_device_display_name.clone(),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(login::Response {
|
Ok(login::Response {
|
||||||
user_id,
|
user_id,
|
||||||
access_token: token,
|
access_token: token,
|
||||||
|
@ -113,7 +115,7 @@ pub fn login_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/logout", data = "<body>")
|
post("/_matrix/client/r0/logout", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn logout_route(
|
pub async fn logout_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<logout::Request>,
|
body: Ruma<logout::Request>,
|
||||||
) -> ConduitResult<logout::Response> {
|
) -> ConduitResult<logout::Response> {
|
||||||
|
@ -122,6 +124,8 @@ pub fn logout_route(
|
||||||
|
|
||||||
db.users.remove_device(&sender_user, sender_device)?;
|
db.users.remove_device(&sender_user, sender_device)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(logout::Response::new().into())
|
Ok(logout::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +142,7 @@ pub fn logout_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/logout/all", data = "<body>")
|
post("/_matrix/client/r0/logout/all", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn logout_all_route(
|
pub async fn logout_all_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<logout_all::Request>,
|
body: Ruma<logout_all::Request>,
|
||||||
) -> ConduitResult<logout_all::Response> {
|
) -> ConduitResult<logout_all::Response> {
|
||||||
|
@ -150,5 +154,7 @@ pub fn logout_all_route(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(logout_all::Response::new().into())
|
Ok(logout_all::Response::new().into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,8 +37,7 @@ pub async fn send_state_event_for_key_route(
|
||||||
)
|
)
|
||||||
.map_err(|_| Error::BadRequest(ErrorKind::BadJson, "Invalid JSON body."))?;
|
.map_err(|_| Error::BadRequest(ErrorKind::BadJson, "Invalid JSON body."))?;
|
||||||
|
|
||||||
Ok(send_state_event_for_key::Response::new(
|
let event_id = send_state_event_for_key_helper(
|
||||||
send_state_event_for_key_helper(
|
|
||||||
&db,
|
&db,
|
||||||
sender_user,
|
sender_user,
|
||||||
&body.content,
|
&body.content,
|
||||||
|
@ -46,9 +45,11 @@ pub async fn send_state_event_for_key_route(
|
||||||
&body.room_id,
|
&body.room_id,
|
||||||
Some(body.state_key.to_owned()),
|
Some(body.state_key.to_owned()),
|
||||||
)
|
)
|
||||||
.await?,
|
.await?;
|
||||||
)
|
|
||||||
.into())
|
db.flush().await?;
|
||||||
|
|
||||||
|
Ok(send_state_event_for_key::Response { event_id }.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(
|
#[cfg_attr(
|
||||||
|
@ -75,8 +76,7 @@ pub async fn send_state_event_for_empty_key_route(
|
||||||
)
|
)
|
||||||
.map_err(|_| Error::BadRequest(ErrorKind::BadJson, "Invalid JSON body."))?;
|
.map_err(|_| Error::BadRequest(ErrorKind::BadJson, "Invalid JSON body."))?;
|
||||||
|
|
||||||
Ok(send_state_event_for_empty_key::Response::new(
|
let event_id = send_state_event_for_key_helper(
|
||||||
send_state_event_for_key_helper(
|
|
||||||
&db,
|
&db,
|
||||||
sender_user
|
sender_user
|
||||||
.as_ref()
|
.as_ref()
|
||||||
|
@ -86,16 +86,18 @@ pub async fn send_state_event_for_empty_key_route(
|
||||||
&body.room_id,
|
&body.room_id,
|
||||||
Some("".into()),
|
Some("".into()),
|
||||||
)
|
)
|
||||||
.await?,
|
.await?;
|
||||||
)
|
|
||||||
.into())
|
db.flush().await?;
|
||||||
|
|
||||||
|
Ok(send_state_event_for_empty_key::Response { event_id }.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(
|
#[cfg_attr(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/state", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/state", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_state_events_route(
|
pub async fn get_state_events_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_state_events::Request>,
|
body: Ruma<get_state_events::Request>,
|
||||||
) -> ConduitResult<get_state_events::Response> {
|
) -> ConduitResult<get_state_events::Response> {
|
||||||
|
@ -140,7 +142,7 @@ pub fn get_state_events_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/state/<_>/<_>", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/state/<_>/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_state_events_for_key_route(
|
pub async fn get_state_events_for_key_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_state_events_for_key::Request>,
|
body: Ruma<get_state_events_for_key::Request>,
|
||||||
) -> ConduitResult<get_state_events_for_key::Response> {
|
) -> ConduitResult<get_state_events_for_key::Response> {
|
||||||
|
@ -189,7 +191,7 @@ pub fn get_state_events_for_key_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/rooms/<_>/state/<_>", data = "<body>")
|
get("/_matrix/client/r0/rooms/<_>/state/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_state_events_for_empty_key_route(
|
pub async fn get_state_events_for_empty_key_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_state_events_for_empty_key::Request>,
|
body: Ruma<get_state_events_for_empty_key::Request>,
|
||||||
) -> ConduitResult<get_state_events_for_empty_key::Response> {
|
) -> ConduitResult<get_state_events_for_empty_key::Response> {
|
||||||
|
|
|
@ -13,7 +13,7 @@ use rocket::{delete, get, put};
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/r0/user/<_>/rooms/<_>/tags/<_>", data = "<body>")
|
put("/_matrix/client/r0/user/<_>/rooms/<_>/tags/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn update_tag_route(
|
pub async fn update_tag_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<create_tag::Request<'_>>,
|
body: Ruma<create_tag::Request<'_>>,
|
||||||
) -> ConduitResult<create_tag::Response> {
|
) -> ConduitResult<create_tag::Response> {
|
||||||
|
@ -40,6 +40,8 @@ pub fn update_tag_route(
|
||||||
&db.globals,
|
&db.globals,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(create_tag::Response.into())
|
Ok(create_tag::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +49,7 @@ pub fn update_tag_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
delete("/_matrix/client/r0/user/<_>/rooms/<_>/tags/<_>", data = "<body>")
|
delete("/_matrix/client/r0/user/<_>/rooms/<_>/tags/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn delete_tag_route(
|
pub async fn delete_tag_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<delete_tag::Request<'_>>,
|
body: Ruma<delete_tag::Request<'_>>,
|
||||||
) -> ConduitResult<delete_tag::Response> {
|
) -> ConduitResult<delete_tag::Response> {
|
||||||
|
@ -71,6 +73,8 @@ pub fn delete_tag_route(
|
||||||
&db.globals,
|
&db.globals,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(delete_tag::Response.into())
|
Ok(delete_tag::Response.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +82,7 @@ pub fn delete_tag_route(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/user/<_>/rooms/<_>/tags", data = "<body>")
|
get("/_matrix/client/r0/user/<_>/rooms/<_>/tags", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn get_tags_route(
|
pub async fn get_tags_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<get_tags::Request<'_>>,
|
body: Ruma<get_tags::Request<'_>>,
|
||||||
) -> ConduitResult<get_tags::Response> {
|
) -> ConduitResult<get_tags::Response> {
|
||||||
|
|
|
@ -10,7 +10,7 @@ use std::collections::BTreeMap;
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
get("/_matrix/client/r0/thirdparty/protocols")
|
get("/_matrix/client/r0/thirdparty/protocols")
|
||||||
)]
|
)]
|
||||||
pub fn get_protocols_route() -> ConduitResult<get_protocols::Response> {
|
pub async fn get_protocols_route() -> ConduitResult<get_protocols::Response> {
|
||||||
warn!("TODO: get_protocols_route");
|
warn!("TODO: get_protocols_route");
|
||||||
Ok(get_protocols::Response {
|
Ok(get_protocols::Response {
|
||||||
protocols: BTreeMap::new(),
|
protocols: BTreeMap::new(),
|
||||||
|
|
|
@ -12,7 +12,7 @@ use rocket::put;
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
put("/_matrix/client/r0/sendToDevice/<_>/<_>", data = "<body>")
|
put("/_matrix/client/r0/sendToDevice/<_>/<_>", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn send_event_to_device_route(
|
pub async fn send_event_to_device_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<send_event_to_device::Request<'_>>,
|
body: Ruma<send_event_to_device::Request<'_>>,
|
||||||
) -> ConduitResult<send_event_to_device::Response> {
|
) -> ConduitResult<send_event_to_device::Response> {
|
||||||
|
@ -66,5 +66,7 @@ pub fn send_event_to_device_route(
|
||||||
db.transaction_ids
|
db.transaction_ids
|
||||||
.add_txnid(sender_user, sender_device, &body.txn_id, &[])?;
|
.add_txnid(sender_user, sender_device, &body.txn_id, &[])?;
|
||||||
|
|
||||||
|
db.flush().await?;
|
||||||
|
|
||||||
Ok(send_event_to_device::Response.into())
|
Ok(send_event_to_device::Response.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ use rocket::get;
|
||||||
/// Note: Unstable features are used while developing new features. Clients should avoid using
|
/// Note: Unstable features are used while developing new features. Clients should avoid using
|
||||||
/// unstable features in their stable releases
|
/// unstable features in their stable releases
|
||||||
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/versions"))]
|
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/versions"))]
|
||||||
pub fn get_supported_versions_route() -> ConduitResult<get_supported_versions::Response> {
|
pub async fn get_supported_versions_route() -> ConduitResult<get_supported_versions::Response> {
|
||||||
let mut resp =
|
let mut resp =
|
||||||
get_supported_versions::Response::new(vec!["r0.5.0".to_owned(), "r0.6.0".to_owned()]);
|
get_supported_versions::Response::new(vec!["r0.5.0".to_owned(), "r0.6.0".to_owned()]);
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ use rocket::post;
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/client/r0/user_directory/search", data = "<body>")
|
post("/_matrix/client/r0/user_directory/search", data = "<body>")
|
||||||
)]
|
)]
|
||||||
pub fn search_users_route(
|
pub async fn search_users_route(
|
||||||
db: State<'_, Database>,
|
db: State<'_, Database>,
|
||||||
body: Ruma<search_users::Request<'_>>,
|
body: Ruma<search_users::Request<'_>>,
|
||||||
) -> ConduitResult<search_users::Response> {
|
) -> ConduitResult<search_users::Response> {
|
||||||
|
|
|
@ -5,7 +5,7 @@ use ruma::api::client::{error::ErrorKind, r0::message::send_message_event};
|
||||||
use rocket::get;
|
use rocket::get;
|
||||||
|
|
||||||
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/voip/turnServer"))]
|
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/voip/turnServer"))]
|
||||||
pub fn turn_server_route() -> ConduitResult<send_message_event::Response> {
|
pub async fn turn_server_route() -> ConduitResult<send_message_event::Response> {
|
||||||
Err(Error::BadRequest(
|
Err(Error::BadRequest(
|
||||||
ErrorKind::NotFound,
|
ErrorKind::NotFound,
|
||||||
"There is no turn server yet.",
|
"There is no turn server yet.",
|
||||||
|
|
|
@ -227,4 +227,9 @@ impl Database {
|
||||||
// Wait until one of them finds something
|
// Wait until one of them finds something
|
||||||
futures.next().await;
|
futures.next().await;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn flush(&self) -> Result<()> {
|
||||||
|
self._db.flush_async().await?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue