From e06094f23ca861ea5ae4864d11fa8ce8b7d7aa2c Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Mon, 2 Feb 2026 13:05:49 +0200 Subject: feat: oauth route --- src/server/state/mod.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/server/state/mod.rs') diff --git a/src/server/state/mod.rs b/src/server/state/mod.rs index 0726689..f5f731e 100644 --- a/src/server/state/mod.rs +++ b/src/server/state/mod.rs @@ -1,33 +1,34 @@ pub mod database; +pub mod federation; + +use std::sync::Arc; use sellershut_auth::{ClientOptions, OauthClient}; -use sqlx::PgPool; #[cfg(feature = "oauth-discord")] use url::Url; -use crate::config::Config; #[cfg(feature = "oauth-discord")] use crate::config::DiscordOauth; +use crate::{config::Config, server::driver::SellershutDriver}; +#[derive(Clone)] pub struct AppState { - database: PgPool, + driver: Arc, #[cfg(feature = "oauth-discord")] oauth_discord: OauthClient, } impl AppState { - pub async fn new(config: &Config) -> anyhow::Result { - let database = database::connect(&config.database).await?; - + pub async fn new(config: &Config, driver: impl SellershutDriver) -> anyhow::Result { Ok(Self { - database, + driver: Arc::new(driver), oauth_discord: discord_client(&config.oauth.discord, &config.oauth.oauth_redirect_url)?, }) } } #[cfg(feature = "oauth-discord")] -fn discord_client(disc: &DiscordOauth, redirect: &Url)->anyhow::Result { +fn discord_client(disc: &DiscordOauth, redirect: &Url) -> anyhow::Result { let discord_opts = ClientOptions::builder() .client_id(disc.client_id.to_owned()) .redirect_url(redirect.to_string()) -- cgit v1.2.3