From 3f708c5fffed105b27965f8e844a26de6bdf9662 Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Sun, 5 Apr 2026 15:17:55 +0200 Subject: feat(cli): cache --- crates/api-auth/src/discord/mod.rs | 16 +++++++++++----- crates/api-auth/src/lib.rs | 6 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) (limited to 'crates/api-auth/src') diff --git a/crates/api-auth/src/discord/mod.rs b/crates/api-auth/src/discord/mod.rs index 29b9bc2..dbcb139 100644 --- a/crates/api-auth/src/discord/mod.rs +++ b/crates/api-auth/src/discord/mod.rs @@ -2,19 +2,25 @@ use api_core::models::user::User; use async_session::Session; use async_trait::async_trait; use oauth2::{CsrfToken, Scope}; +use sh_util::cache::RedisManager; use sqlx::PgPool; use crate::{BasicClient, CSRF_TOKEN, OauthDriver, error::AuthError}; -#[derive(Clone, Debug)] +#[derive(Clone)] pub struct AuthServiceDiscord { database: PgPool, + cache: RedisManager, client: BasicClient, } impl AuthServiceDiscord { - pub fn new(database: PgPool, client: BasicClient) -> Self { - Self { database, client } + pub fn new(database: PgPool, client: BasicClient, cache: RedisManager) -> Self { + Self { + database, + client, + cache, + } } } @@ -26,7 +32,7 @@ impl OauthDriver for AuthServiceDiscord { async fn get_user(&self) -> Result { todo!() } - async fn create_oauth_session(&self)->Result { + async fn create_oauth_session(&self) -> Result { let (auth_url, csrf_token) = self .client .authorize_url(CsrfToken::new_random) @@ -38,7 +44,7 @@ impl OauthDriver for AuthServiceDiscord { Ok(String::default()) } - async fn save_session(&self, user: &User)->Result<(), AuthError>{ + async fn save_session(&self, user: &User) -> Result<(), AuthError> { todo!() } } diff --git a/crates/api-auth/src/lib.rs b/crates/api-auth/src/lib.rs index 95a04c4..367d395 100644 --- a/crates/api-auth/src/lib.rs +++ b/crates/api-auth/src/lib.rs @@ -20,11 +20,11 @@ type C = oauth2::basic::BasicClient< pub struct BasicClient(C); #[async_trait::async_trait] -pub trait OauthDriver: Send + Sync + std::fmt::Debug { +pub trait OauthDriver: Send + Sync { async fn get_auth_token(&self) -> Result; async fn get_user(&self) -> Result; - async fn create_oauth_session(&self)->Result; - async fn save_session(&self, user: &User)->Result<(), AuthError>; + async fn create_oauth_session(&self) -> Result; + async fn save_session(&self, user: &User) -> Result<(), AuthError>; } use oauth2::{AuthUrl, ClientId, ClientSecret, RedirectUrl, TokenUrl}; -- cgit v1.2.3