mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-18 08:11:24 +01:00
don't automatically wrap in RumaResponse
This allows us to use the `ruma_route` convenience function even when we need to add our own hacks into the responses, thus making us less reliant on Ruma.
This commit is contained in:
parent
87ac0e2a38
commit
230ebd3884
35 changed files with 438 additions and 405 deletions
|
|
@ -16,7 +16,7 @@ use serde::Deserialize;
|
|||
use tracing::{info, warn};
|
||||
|
||||
use super::{DEVICE_ID_LENGTH, TOKEN_LENGTH};
|
||||
use crate::{services, utils, Error, Result, Ruma};
|
||||
use crate::{services, utils, Error, Result, Ruma, RumaResponse};
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct Claims {
|
||||
|
|
@ -29,13 +29,13 @@ struct Claims {
|
|||
/// the `type` field when logging in.
|
||||
pub(crate) async fn get_login_types_route(
|
||||
_body: Ruma<get_login_types::v3::Request>,
|
||||
) -> Result<get_login_types::v3::Response> {
|
||||
Ok(get_login_types::v3::Response::new(vec![
|
||||
) -> Result<RumaResponse<get_login_types::v3::Response>> {
|
||||
Ok(RumaResponse(get_login_types::v3::Response::new(vec![
|
||||
get_login_types::v3::LoginType::Password(PasswordLoginType::default()),
|
||||
get_login_types::v3::LoginType::ApplicationService(
|
||||
ApplicationServiceLoginType::default(),
|
||||
),
|
||||
]))
|
||||
])))
|
||||
}
|
||||
|
||||
/// # `POST /_matrix/client/r0/login`
|
||||
|
|
@ -54,7 +54,7 @@ pub(crate) async fn get_login_types_route(
|
|||
#[allow(clippy::too_many_lines)]
|
||||
pub(crate) async fn login_route(
|
||||
body: Ruma<login::v3::Request>,
|
||||
) -> Result<login::v3::Response> {
|
||||
) -> Result<RumaResponse<login::v3::Response>> {
|
||||
// To allow deprecated login methods
|
||||
#![allow(deprecated)]
|
||||
// Validate login method
|
||||
|
|
@ -256,7 +256,7 @@ pub(crate) async fn login_route(
|
|||
|
||||
// Homeservers are still required to send the `home_server` field
|
||||
#[allow(deprecated)]
|
||||
Ok(login::v3::Response {
|
||||
Ok(RumaResponse(login::v3::Response {
|
||||
user_id,
|
||||
access_token: token,
|
||||
home_server: Some(services().globals.server_name().to_owned()),
|
||||
|
|
@ -264,7 +264,7 @@ pub(crate) async fn login_route(
|
|||
well_known: None,
|
||||
refresh_token: None,
|
||||
expires_in: None,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
/// # `POST /_matrix/client/r0/logout`
|
||||
|
|
@ -278,7 +278,7 @@ pub(crate) async fn login_route(
|
|||
/// - Triggers device list updates
|
||||
pub(crate) async fn logout_route(
|
||||
body: Ruma<logout::v3::Request>,
|
||||
) -> Result<logout::v3::Response> {
|
||||
) -> Result<RumaResponse<logout::v3::Response>> {
|
||||
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
|
||||
let sender_device =
|
||||
body.sender_device.as_ref().expect("user is authenticated");
|
||||
|
|
@ -294,7 +294,7 @@ pub(crate) async fn logout_route(
|
|||
|
||||
services().users.remove_device(sender_user, sender_device)?;
|
||||
|
||||
Ok(logout::v3::Response::new())
|
||||
Ok(RumaResponse(logout::v3::Response::new()))
|
||||
}
|
||||
|
||||
/// # `POST /_matrix/client/r0/logout/all`
|
||||
|
|
@ -311,7 +311,7 @@ pub(crate) async fn logout_route(
|
|||
/// /_matrix/client/r0/logout`](logout_route) from each device of this user.
|
||||
pub(crate) async fn logout_all_route(
|
||||
body: Ruma<logout_all::v3::Request>,
|
||||
) -> Result<logout_all::v3::Response> {
|
||||
) -> Result<RumaResponse<logout_all::v3::Response>> {
|
||||
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
|
||||
|
||||
if let Some(info) = &body.appservice_info {
|
||||
|
|
@ -332,5 +332,5 @@ pub(crate) async fn logout_all_route(
|
|||
services().users.remove_device(sender_user, &device_id)?;
|
||||
}
|
||||
|
||||
Ok(logout_all::v3::Response::new())
|
||||
Ok(RumaResponse(logout_all::v3::Response::new()))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue