aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-server/src/router.rs
diff options
context:
space:
mode:
Diffstat (limited to 'atuin-server/src/router.rs')
-rw-r--r--atuin-server/src/router.rs20
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))