Skip to content
Snippets Groups Projects
Commit ccef1a4c authored by Jason Volk's avatar Jason Volk
Browse files

add formal wrapping for api state


Signed-off-by: default avatarJason Volk <jason@zemos.net>
parent 5c258f41
No related branches found
No related tags found
1 merge request!543Misc
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
pub(crate) use conduit::{debug_info, pdu::PduEvent, utils, Error, Result}; pub(crate) use conduit::{debug_info, pdu::PduEvent, utils, Error, Result};
pub(crate) use service::services; pub(crate) use service::services;
pub use crate::router::State; pub use self::router::State;
pub(crate) use crate::router::{Ruma, RumaResponse}; pub(crate) use self::router::{Ruma, RumaResponse};
conduit::mod_ctor! {} conduit::mod_ctor! {}
conduit::mod_dtor! {} conduit::mod_dtor! {}
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
mod handler; mod handler;
mod request; mod request;
mod response; mod response;
mod state;
use std::sync::Arc;
use axum::{ use axum::{
response::IntoResponse, response::IntoResponse,
...@@ -15,11 +14,10 @@ ...@@ -15,11 +14,10 @@
use http::Uri; use http::Uri;
use self::handler::RouterExt; use self::handler::RouterExt;
pub use self::state::State;
pub(super) use self::{args::Args as Ruma, response::RumaResponse}; pub(super) use self::{args::Args as Ruma, response::RumaResponse};
use crate::{client, server}; use crate::{client, server};
pub type State = Arc<service::Services>;
pub fn build(router: Router<State>, server: &Server) -> Router<State> { pub fn build(router: Router<State>, server: &Server) -> Router<State> {
let config = &server.config; let config = &server.config;
let router = router let router = router
......
use std::{ops::Deref, sync::Arc};
use conduit_service::Services;
#[derive(Clone)]
pub struct State {
services: Arc<Services>,
}
impl State {
pub fn new(services: Arc<Services>) -> Self {
Self {
services,
}
}
}
impl Deref for State {
type Target = Arc<Services>;
fn deref(&self) -> &Self::Target { &self.services }
}
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
pub(crate) fn build(services: &Arc<Services>) -> Router { pub(crate) fn build(services: &Arc<Services>) -> Router {
let router = Router::<State>::new(); let router = Router::<State>::new();
let state = services.clone(); let state = State::new(services.clone());
conduit_api::router::build(router, &services.server) conduit_api::router::build(router, &services.server)
.route("/", get(it_works)) .route("/", get(it_works))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment