Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,14 @@ jobs:
- name: Install MSRV toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.82"
toolchain: "1.88"

- uses: Swatinem/rust-cache@v2
with:
# A stable compiler update should automatically not reuse old caches.
# Add the MSRV as a stable cache key too so bumping it also gets us a
# fresh cache.
shared-key: msrv1.82
shared-key: msrv1.88

- name: Run checks
run: cargo check --all-features
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# [unreleased]

Breaking changes:

- Upgrade Ruma to 0.14.0
- All endpoints use `SinglePath` rather than `VersionHistory` as `PathBuilder`.
- Bump MSRV to 1.88.

# 0.8.0

Breaking changes:
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ keywords = ["matrix", "chat", "messaging", "ruma"]
license = "MIT"
repository = "https://github.com/ruma/synapse-admin-api"
edition = "2021"
rust-version = "1.82"
rust-version = "1.88"

[features]
client = []
Expand All @@ -19,7 +19,7 @@ shared-secret-registration-mac = ["dep:hex", "dep:hmac", "dep:sha1"]
[dependencies]
hex = { version = "0.4.3", optional = true }
hmac = { version = "0.12.1", optional = true }
ruma = { version = "0.13.0", features = ["api", "events"] }
ruma = { version = "0.14.0", features = ["api", "events"] }
serde = { version = "1.0.118", features = ["derive"] }
sha1 = { version = "0.10.1", optional = true }

Expand Down
10 changes: 4 additions & 6 deletions src/account_validity/renew_account/v1.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
//! [GET /_synapse/admin/v1/account_validity/validity](https://github.com/element-hq/synapse/blob/master/docs/admin_api/account_validity.md)

use ruma::{
api::{metadata, request, response, Metadata},
api::{auth_scheme::AccessToken, metadata, request, response},
MilliSecondsSinceUnixEpoch, OwnedUserId,
};

const METADATA: Metadata = metadata! {
metadata! {
method: POST,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/account_validity/validity",
}
};
path: "/_synapse/admin/v1/account_validity/validity",
}

#[request]
pub struct Request {
Expand Down
10 changes: 4 additions & 6 deletions src/background_updates/enabled/v1.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
//! [POST /_synapse/admin/v1/background_updates/enabled](https://github.com/element-hq/synapse/blob/develop/docs/usage/administration/admin_api/background_updates.md#enabled)

use ruma::{
api::{request, response, Metadata},
api::{auth_scheme::AccessToken, request, response},
metadata,
};
use serde::{Deserialize, Serialize};

const METADATA: Metadata = metadata! {
metadata! {
method: POST,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/background_updates/enabled",
}
};
path: "/_synapse/admin/v1/background_updates/enabled",
}

#[request]
pub struct Request {
Expand Down
14 changes: 6 additions & 8 deletions src/background_updates/run/v1.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
//! [POST /_synapse/admin/v1/background_updates/start_job](https://github.com/element-hq/synapse/blob/master/docs/usage/administration/admin_api/background_updates.md#run)

use ruma::{
api::{request, response, Metadata},
api::{auth_scheme::AccessToken, request, response},
metadata,
serde::{PartialEqAsRefStr, StringEnum},
serde::StringEnum,
};

const METADATA: Metadata = metadata! {
metadata! {
method: POST,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/background_updates/start_job",
}
};
path: "/_synapse/admin/v1/background_updates/start_job",
}

#[request]
pub struct Request {
Expand All @@ -39,7 +37,7 @@ impl Response {
}
}

#[derive(Clone, PartialEqAsRefStr, Eq, StringEnum)]
#[derive(Clone, StringEnum)]
#[ruma_enum(rename_all = "snake_case")]
#[non_exhaustive]
pub enum JobName {
Expand Down
10 changes: 4 additions & 6 deletions src/background_updates/status/v1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,15 @@

use std::collections::HashMap;

use ruma::api::{metadata, request, response, Metadata};
use ruma::api::{auth_scheme::AccessToken, metadata, request, response};
use serde::{Deserialize, Serialize};

const METADATA: Metadata = metadata! {
metadata! {
method: GET,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/background_updates/status",
}
};
path: "/_synapse/admin/v1/background_updates/status",
}

#[request]
#[derive(Default)]
Expand Down
10 changes: 4 additions & 6 deletions src/experimental_features/enable_features/v1.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
//! [PUT /_synapse/admin/v1/experimental_features/:user_id](https://github.com/element-hq/synapse/blob/master/docs/admin_api/experimental_features.md#enablingdisabling-features)

use ruma::{
api::{request, response, Metadata},
api::{auth_scheme::AccessToken, request, response},
metadata, OwnedUserId,
};
use serde::{Deserialize, Serialize};

const METADATA: Metadata = metadata! {
metadata! {
method: PUT,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/experimental_features/{user_id}",
}
};
path: "/_synapse/admin/v1/experimental_features/{user_id}",
}

#[request]
#[derive(Serialize, Deserialize, PartialEq)]
Expand Down
10 changes: 4 additions & 6 deletions src/experimental_features/list_features/v1.rs
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
//! [GET /_synapse/admin/v1/experimental_features/:user_id](https://github.com/element-hq/synapse/blob/develop/docs/admin_api/experimental_features.md#listing-enabled-features)

use ruma::{
api::{request, response, Metadata},
api::{auth_scheme::AccessToken, request, response},
metadata, OwnedUserId,
};
use serde::{Deserialize, Serialize};

use crate::experimental_features::enable_features::v1::ExperimentalFeatures;

const METADATA: Metadata = metadata! {
metadata! {
method: GET,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/experimental_features/{user_id}",
}
};
path: "/_synapse/admin/v1/experimental_features/{user_id}",
}

#[request]
#[derive(Serialize, Deserialize, PartialEq)]
Expand Down
12 changes: 5 additions & 7 deletions src/register_users/shared_secret_register/v1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#[cfg(feature = "shared-secret-registration-mac")]
use hmac::{digest::InvalidLength, Hmac, Mac};
use ruma::{
api::{metadata, request, response, Metadata},
api::{auth_scheme::NoAuthentication, metadata, request, response},
OwnedDeviceId, OwnedServerName, OwnedUserId,
};
#[cfg(feature = "shared-secret-registration-mac")]
Expand All @@ -12,14 +12,12 @@ use sha1::Sha1;
#[cfg(feature = "shared-secret-registration-mac")]
type HmacSha1 = Hmac<Sha1>;

const METADATA: Metadata = metadata! {
metadata! {
method: POST,
rate_limited: false,
authentication: None,
history: {
unstable => "/_synapse/admin/v1/register",
}
};
authentication: NoAuthentication,
path: "/_synapse/admin/v1/register",
}

#[request]
#[derive(Default)]
Expand Down
12 changes: 5 additions & 7 deletions src/register_users/shared_secret_register_nonce/v1.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
//! [GET /_synapse/admin/v1/register](https://github.com/element-hq/synapse/blob/master/docs/admin_api/register_api.md)

use ruma::api::{metadata, request, response, Metadata};
use ruma::api::{auth_scheme::NoAuthentication, metadata, request, response};

const METADATA: Metadata = metadata! {
metadata! {
method: GET,
rate_limited: false,
authentication: None,
history: {
unstable => "/_synapse/admin/v1/register",
}
};
authentication: NoAuthentication,
path: "/_synapse/admin/v1/register",
}

#[request]
#[derive(Default)]
Expand Down
10 changes: 4 additions & 6 deletions src/room_membership/join_room/v1.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
//! [POST /_synapse/admin/v1/join/:room_id_or_alias](https://github.com/element-hq/synapse/blob/master/docs/admin_api/room_membership.md)

use ruma::{
api::{request, response, Metadata},
api::{auth_scheme::AccessToken, request, response},
metadata, OwnedRoomId, OwnedRoomOrAliasId, OwnedUserId,
};

const METADATA: Metadata = metadata! {
metadata! {
method: POST,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/join/{room_id_or_alias}",
}
};
path: "/_synapse/admin/v1/join/{room_id_or_alias}",
}

#[request]
pub struct Request {
Expand Down
16 changes: 7 additions & 9 deletions src/rooms/list_rooms/v1.rs
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
//! [GET /_synapse/admin/v1/rooms](https://github.com/element-hq/synapse/blob/master/docs/admin_api/rooms.md#list-room-api)
use ruma::{
api::{metadata, request, response, Metadata},
api::{auth_scheme::AccessToken, metadata, request, response},
events::room::{guest_access::GuestAccess, history_visibility::HistoryVisibility},
room::{JoinRuleKind, RoomType},
serde::{OrdAsRefStr, PartialEqAsRefStr, PartialOrdAsRefStr, StringEnum},
serde::StringEnum,
uint, OwnedRoomAliasId, OwnedRoomId, OwnedUserId, UInt,
};
use serde::{Deserialize, Serialize};

const METADATA: Metadata = metadata! {
metadata! {
method: GET,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/rooms",
}
};
path: "/_synapse/admin/v1/rooms",
}

#[request]
#[derive(Default)]
Expand Down Expand Up @@ -81,7 +79,7 @@ impl Response {
}

/// Enum to define the sorting method of rooms.
#[derive(Clone, PartialEqAsRefStr, Eq, PartialOrdAsRefStr, OrdAsRefStr, StringEnum)]
#[derive(Clone, StringEnum)]
#[ruma_enum(rename_all = "snake_case")]
#[non_exhaustive]
pub enum RoomSortOrder {
Expand Down Expand Up @@ -129,7 +127,7 @@ pub enum RoomSortOrder {
}

/// Enum to define the sort order direction.
#[derive(Clone, PartialEqAsRefStr, Eq, PartialOrdAsRefStr, OrdAsRefStr, StringEnum)]
#[derive(Clone, StringEnum)]
#[non_exhaustive]
pub enum SortDirection {
/// Sort direction backward.
Expand Down
10 changes: 4 additions & 6 deletions src/rooms/room_details/v1.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
//! [GET /_synapse/admin/v1/rooms/:room_id](https://github.com/element-hq/synapse/blob/master/docs/admin_api/rooms.md#room-details-api)
use ruma::{
api::{metadata, request, response, Metadata},
api::{auth_scheme::AccessToken, metadata, request, response},
events::room::{guest_access::GuestAccess, history_visibility::HistoryVisibility},
room::{JoinRuleKind, RoomType},
uint, OwnedMxcUri, OwnedRoomAliasId, OwnedRoomId, OwnedUserId, UInt,
};

const METADATA: Metadata = metadata! {
metadata! {
method: GET,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/rooms/{room_id}",
}
};
path: "/_synapse/admin/v1/rooms/{room_id}",
}

#[request]
pub struct Request {
Expand Down
10 changes: 4 additions & 6 deletions src/rooms/room_members/v1.rs
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
//! [GET /_synapse/admin/v1/rooms/:room_id/members](https://github.com/element-hq/synapse/blob/master/docs/admin_api/rooms.md#room-members-api)
use ruma::{
api::{metadata, request, response, Metadata},
api::{auth_scheme::AccessToken, metadata, request, response},
OwnedRoomId, OwnedUserId, UInt,
};

const METADATA: Metadata = metadata! {
metadata! {
method: GET,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v1/rooms/{room_id}/members",
}
};
path: "/_synapse/admin/v1/rooms/{room_id}/members",
}

#[request]
pub struct Request {
Expand Down
1 change: 1 addition & 0 deletions src/users.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
//! Endpoints in the `/_synapse/admin/v<x>/users/` scope.

pub mod create_or_modify;
pub mod deactivate_account;
pub mod get_details;
pub mod is_user_admin;
pub mod list_joined_rooms;
Expand Down
10 changes: 4 additions & 6 deletions src/users/create_or_modify/v2.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
//! [PUT /_synapse/admin/v2/users/:user_id](https://github.com/element-hq/synapse/blob/master/docs/admin_api/user_admin_api.md#create-or-modify-account)

use ruma::{
api::{metadata, request, response, Metadata},
api::{auth_scheme::AccessToken, metadata, request, response},
thirdparty::Medium,
OwnedUserId,
};
use serde::{Deserialize, Serialize};

pub use crate::users::{ExternalId, UserDetails};

const METADATA: Metadata = metadata! {
metadata! {
method: PUT,
rate_limited: false,
authentication: AccessToken,
history: {
unstable => "/_synapse/admin/v2/users/{user_id}",
}
};
path: "/_synapse/admin/v2/users/{user_id}",
}

#[request]
pub struct Request {
Expand Down
Loading
Loading