diff --git a/crates/tasks/src/database.rs b/crates/tasks/src/database.rs index 1b072616..5fa4d1ef 100644 --- a/crates/tasks/src/database.rs +++ b/crates/tasks/src/database.rs @@ -17,7 +17,7 @@ use std::str::FromStr; use apalis_core::{ - builder::{WorkerBuilder, WorkerFactory, WorkerFactoryFn}, + builder::{WorkerBuilder, WorkerFactoryFn}, context::JobContext, executor::TokioExecutor, job::Job, diff --git a/crates/tasks/src/email.rs b/crates/tasks/src/email.rs index 89caca44..fb3cbeaf 100644 --- a/crates/tasks/src/email.rs +++ b/crates/tasks/src/email.rs @@ -14,7 +14,7 @@ use anyhow::Context; use apalis_core::{ - builder::{WorkerBuilder, WorkerFactory, WorkerFactoryFn}, + builder::{WorkerBuilder, WorkerFactoryFn}, context::JobContext, executor::TokioExecutor, job::Job, diff --git a/crates/tasks/src/matrix.rs b/crates/tasks/src/matrix.rs index 4746025c..7f1d68ad 100644 --- a/crates/tasks/src/matrix.rs +++ b/crates/tasks/src/matrix.rs @@ -14,7 +14,7 @@ use anyhow::Context; use apalis_core::{ - builder::{WorkerBuilder, WorkerFactory, WorkerFactoryFn}, + builder::{WorkerBuilder, WorkerFactoryFn}, context::JobContext, executor::TokioExecutor, job::Job, @@ -45,6 +45,7 @@ pub struct HomeserverConnection { } impl HomeserverConnection { + #[must_use] pub fn new(homeserver: String, endpoint: Url, access_token: String) -> Self { Self { homeserver, @@ -64,7 +65,7 @@ struct ExternalID { #[serde(rename_all = "lowercase")] enum ThreePIDMedium { Email, - MSISDN, + Msisdn, } #[derive(Serialize, Deserialize)] @@ -142,14 +143,14 @@ async fn provision_user( display_name, three_pids, external_ids: vec![ExternalID { - auth_provider: "oauth-delegated".to_string(), + auth_provider: "oauth-delegated".to_owned(), external_id: user.sub, }], }; repo.cancel().await?; - let path = format!("_synapse/admin/v2/users/{user_id}", user_id = mxid,); + let path = format!("_synapse/admin/v2/users/{mxid}",); let mut req = Request::put(matrix.endpoint.join(&path)?.as_str()); req.headers_mut() .context("Failed to get headers")? @@ -212,7 +213,7 @@ async fn provision_device( homeserver = matrix.homeserver ); - let path = format!("_synapse/admin/v2/users/{user_id}/devices", user_id = mxid); + let path = format!("_synapse/admin/v2/users/{mxid}/devices"); let mut req = Request::post(matrix.endpoint.join(&path)?.as_str()); req.headers_mut() .context("Failed to get headers")? @@ -228,7 +229,7 @@ async fn provision_device( match response.status() { StatusCode::CREATED => { - info!(%user.id, %mxid, device.id = job.device_id(), "Device created") + info!(%user.id, %mxid, device.id = job.device_id(), "Device created"); } code => anyhow::bail!("Failed to provision device. Status code: {code}"), } diff --git a/docs/config.schema.json b/docs/config.schema.json index 91174571..e8e7fb0f 100644 --- a/docs/config.schema.json +++ b/docs/config.schema.json @@ -4,6 +4,7 @@ "description": "Application configuration root", "type": "object", "required": [ + "matrix", "secrets" ], "properties": { @@ -120,9 +121,6 @@ }, "matrix": { "description": "Configuration related to the homeserver", - "default": { - "homeserver": "localhost:8008" - }, "allOf": [ { "$ref": "#/definitions/MatrixConfig" @@ -1118,11 +1116,24 @@ "MatrixConfig": { "description": "Configuration related to the Matrix homeserver", "type": "object", + "required": [ + "secret" + ], "properties": { + "endpoint": { + "description": "The base URL of the homeserver's client API", + "default": "http://localhost:8008/", + "type": "string", + "format": "uri" + }, "homeserver": { "description": "Time-to-live of a CSRF token in seconds", "default": "localhost:8008", "type": "string" + }, + "secret": { + "description": "Shared secret to use for calls to the admin API", + "type": "string" } } },