aboutsummaryrefslogtreecommitdiffstats
path: root/crates/api-auth
diff options
context:
space:
mode:
authorrtkay123 <dev@kanjala.com>2026-04-12 14:17:49 +0200
committerrtkay123 <dev@kanjala.com>2026-04-12 14:17:49 +0200
commitd9375b82c3bb3a917e1795be4dcd7ed849b32ca2 (patch)
tree308245b0e578179bf0ff047ddc453ab1934a0795 /crates/api-auth
parent34b2f8ff6a99471fbb72ed7c52a92b92645b0652 (diff)
downloadsellershut-d9375b82c3bb3a917e1795be4dcd7ed849b32ca2.tar.bz2
sellershut-d9375b82c3bb3a917e1795be4dcd7ed849b32ca2.zip
build: migrations
Diffstat (limited to 'crates/api-auth')
-rw-r--r--crates/api-auth/src/discord/mod.rs14
-rw-r--r--crates/api-auth/src/lib.rs1
2 files changed, 12 insertions, 3 deletions
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<DiscordUser> 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(())
}
}
diff --git a/crates/api-auth/src/lib.rs b/crates/api-auth/src/lib.rs
index 24b966c..234a85b 100644
--- a/crates/api-auth/src/lib.rs
+++ b/crates/api-auth/src/lib.rs
@@ -2,6 +2,7 @@
pub mod discord;
pub mod client;
+#[cfg(feature = "discord")]
pub(crate) mod util;
mod error;