From d9375b82c3bb3a917e1795be4dcd7ed849b32ca2 Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Sun, 12 Apr 2026 14:17:49 +0200 Subject: build: migrations --- crates/api-auth/src/discord/mod.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'crates/api-auth/src/discord') diff --git a/crates/api-auth/src/discord/mod.rs b/crates/api-auth/src/discord/mod.rs index ffa5a68..ba26f8b 100644 --- a/crates/api-auth/src/discord/mod.rs +++ b/crates/api-auth/src/discord/mod.rs @@ -1,4 +1,5 @@ use api_core::models::user::User; +use async_session::Session; use async_trait::async_trait; use serde::{Deserialize, Serialize}; use sh_util::cache::RedisManager; @@ -25,7 +26,11 @@ impl TryFrom for User { match (&user_data.email, user_data.verified) { (None, _) => Err(AuthError::MissingEmail), (_, false) => Err(AuthError::EmailNotVerified), - (Some(_), true) => Ok(Self {}), + (Some(_), true) => Ok(Self { + id: user_data.id, + username: user_data.username, + email: user_data.email.ok_or(AuthError::MissingEmail)?, + }), } } } @@ -67,7 +72,10 @@ impl OauthDriver for AuthServiceDiscord { crate::util::create_oauth_session(&self.client, &self.cache, &["identify", "email"]).await } - async fn save_session(&self, _user: &User) -> Result<(), AuthError> { - todo!() + async fn save_session(&self, user: &User) -> Result<(), AuthError> { + let mut session = Session::new(); + session.insert("user", user).expect("serialisable user"); + + Ok(()) } } -- cgit v1.2.3