diff options
| author | Conrad Ludgate <conradludgate@gmail.com> | 2023-06-12 09:04:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-12 09:04:35 +0100 |
| commit | 8655c93853506acf05f6ae4e58bfc2c6198be254 (patch) | |
| tree | 22d20b35636ad2eb717d58c93ae07378adbb76eb /atuin-server/src/router.rs | |
| parent | Make Ctrl-d behaviour match other tools (#1040) (diff) | |
| download | atuin-8655c93853506acf05f6ae4e58bfc2c6198be254.zip | |
refactor server to allow pluggable db and tracing (#1036)
* refactor server to allow pluggable db and tracing
* clean up
* fix descriptions
* remove dependencies
Diffstat (limited to 'atuin-server/src/router.rs')
| -rw-r--r-- | atuin-server/src/router.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/atuin-server/src/router.rs b/atuin-server/src/router.rs index 20b11f45..ec558e78 100644 --- a/atuin-server/src/router.rs +++ b/atuin-server/src/router.rs @@ -10,11 +10,14 @@ use http::request::Parts; use tower::ServiceBuilder; use tower_http::trace::TraceLayer; -use super::{database::Database, handlers}; -use crate::{models::User, settings::Settings}; +use super::handlers; +use crate::settings::Settings; +use atuin_server_database::{models::User, Database}; + +pub struct UserAuth(pub User); #[async_trait] -impl<DB: Send + Sync> FromRequestParts<AppState<DB>> for User +impl<DB: Send + Sync> FromRequestParts<AppState<DB>> for UserAuth where DB: Database, { @@ -45,7 +48,7 @@ where .await .map_err(|_| http::StatusCode::FORBIDDEN)?; - Ok(user) + Ok(UserAuth(user)) } } @@ -54,15 +57,12 @@ async fn teapot() -> impl IntoResponse { } #[derive(Clone)] -pub struct AppState<DB> { +pub struct AppState<DB: Database> { pub database: DB, - pub settings: Settings, + pub settings: Settings<DB::Settings>, } -pub fn router<DB: Database + Clone + Send + Sync + 'static>( - database: DB, - settings: Settings, -) -> Router { +pub fn router<DB: Database>(database: DB, settings: Settings<DB::Settings>) -> Router { let routes = Router::new() .route("/", get(handlers::index)) .route("/sync/count", get(handlers::history::count)) |
