move routes into api router top level
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
c42cb90dd3
commit
720fbd09c2
4 changed files with 31 additions and 30 deletions
|
@ -1,15 +1,14 @@
|
||||||
pub mod client;
|
pub mod client;
|
||||||
mod router;
|
pub mod router;
|
||||||
pub mod routes;
|
|
||||||
pub mod server;
|
pub mod server;
|
||||||
|
|
||||||
extern crate conduit_core as conduit;
|
extern crate conduit_core as conduit;
|
||||||
extern crate conduit_service as service;
|
extern crate conduit_service as service;
|
||||||
|
|
||||||
pub(crate) use conduit::{debug_info, debug_warn, utils, Error, Result};
|
pub(crate) use conduit::{debug_info, debug_warn, pdu::PduEvent, utils, Error, Result};
|
||||||
pub(crate) use service::{pdu::PduEvent, services, user_is_local};
|
pub(crate) use service::{services, user_is_local};
|
||||||
|
|
||||||
pub(crate) use self::router::{Ruma, RumaResponse};
|
pub(crate) use crate::router::{Ruma, RumaResponse};
|
||||||
|
|
||||||
conduit::mod_ctor! {}
|
conduit::mod_ctor! {}
|
||||||
conduit::mod_dtor! {}
|
conduit::mod_dtor! {}
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
mod args;
|
||||||
|
mod auth;
|
||||||
|
mod handler;
|
||||||
|
mod request;
|
||||||
|
mod response;
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
response::IntoResponse,
|
response::IntoResponse,
|
||||||
routing::{any, get, post},
|
routing::{any, get, post},
|
||||||
|
@ -7,7 +13,9 @@ use conduit::{err, Error, Server};
|
||||||
use http::Uri;
|
use http::Uri;
|
||||||
use ruma::api::client::error::ErrorKind;
|
use ruma::api::client::error::ErrorKind;
|
||||||
|
|
||||||
use crate::{client, router::RouterExt, server};
|
use self::handler::RouterExt;
|
||||||
|
pub(super) use self::{ar::Ruma, response::RumaResponse};
|
||||||
|
use crate::{client, server};
|
||||||
|
|
||||||
pub fn build(router: Router, server: &Server) -> Router {
|
pub fn build(router: Router, server: &Server) -> Router {
|
||||||
let config = &server.config;
|
let config = &server.config;
|
||||||
|
@ -233,7 +241,7 @@ pub fn build(router: Router, server: &Server) -> Router {
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn initial_sync(_uri: Uri) -> impl IntoResponse {
|
async fn initial_sync(_uri: Uri) -> impl IntoResponse {
|
||||||
Error::BadRequest(ErrorKind::GuestAccessForbidden, "Guest access not implemented")
|
err!(Request(GuestAccessForbidden("Guest access not implemented")))
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn federation_disabled() -> impl IntoResponse { err!(Config("allow_federation", "Federation is disabled.")) }
|
async fn federation_disabled() -> impl IntoResponse { err!(Config("allow_federation", "Federation is disabled.")) }
|
|
@ -1,24 +1,18 @@
|
||||||
mod auth;
|
|
||||||
mod handler;
|
|
||||||
mod request;
|
|
||||||
mod response;
|
|
||||||
|
|
||||||
use std::{mem, ops::Deref};
|
use std::{mem, ops::Deref};
|
||||||
|
|
||||||
use axum::{async_trait, body::Body, extract::FromRequest};
|
use axum::{async_trait, body::Body, extract::FromRequest};
|
||||||
use bytes::{BufMut, BytesMut};
|
use bytes::{BufMut, BytesMut};
|
||||||
use conduit::{debug, debug_warn, trace, warn};
|
use conduit::{debug, debug_warn, trace, warn, Error, Result};
|
||||||
use ruma::{
|
use ruma::{
|
||||||
api::{client::error::ErrorKind, IncomingRequest},
|
api::{client::error::ErrorKind, IncomingRequest},
|
||||||
CanonicalJsonValue, OwnedDeviceId, OwnedServerName, OwnedUserId, UserId,
|
CanonicalJsonValue, OwnedDeviceId, OwnedServerName, OwnedUserId, UserId,
|
||||||
};
|
};
|
||||||
|
|
||||||
use self::{auth::Auth, request::Request};
|
use super::{auth, auth::Auth, request, request::Request};
|
||||||
pub(super) use self::{handler::RouterExt, response::RumaResponse};
|
use crate::{service::appservice::RegistrationInfo, services};
|
||||||
use crate::{service::appservice::RegistrationInfo, services, Error, Result};
|
|
||||||
|
|
||||||
/// Extractor for Ruma request structs
|
/// Extractor for Ruma request structs
|
||||||
pub(crate) struct Ruma<T> {
|
pub(crate) struct Args<T> {
|
||||||
/// Request struct body
|
/// Request struct body
|
||||||
pub(crate) body: T,
|
pub(crate) body: T,
|
||||||
|
|
||||||
|
@ -44,7 +38,7 @@ pub(crate) struct Ruma<T> {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl<T, S> FromRequest<S, Body> for Ruma<T>
|
impl<T, S> FromRequest<S, Body> for Args<T>
|
||||||
where
|
where
|
||||||
T: IncomingRequest,
|
T: IncomingRequest,
|
||||||
{
|
{
|
||||||
|
@ -65,7 +59,7 @@ where
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Deref for Ruma<T> {
|
impl<T> Deref for Args<T> {
|
||||||
type Target = T;
|
type Target = T;
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target { &self.body }
|
fn deref(&self) -> &Self::Target { &self.body }
|
|
@ -10,7 +10,7 @@ extern crate conduit_api as api;
|
||||||
|
|
||||||
pub(crate) fn build(server: &Arc<Server>) -> Router {
|
pub(crate) fn build(server: &Arc<Server>) -> Router {
|
||||||
let state = service::services();
|
let state = service::services();
|
||||||
let router = Router::new()
|
api::router::build(Router::new(), server)
|
||||||
.route("/", get(it_works))
|
.route("/", get(it_works))
|
||||||
.fallback(not_found)
|
.fallback(not_found)
|
||||||
.with_state(state);
|
.with_state(state);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue