diff options
Diffstat (limited to 'crates/auth/src/server/routes')
-rw-r--r-- | crates/auth/src/server/routes/authorised.rs | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/crates/auth/src/server/routes/authorised.rs b/crates/auth/src/server/routes/authorised.rs index 83f73cf..32dd929 100644 --- a/crates/auth/src/server/routes/authorised.rs +++ b/crates/auth/src/server/routes/authorised.rs @@ -9,6 +9,7 @@ use axum::{ use axum_extra::{TypedHeader, headers}; use oauth2::{AuthorizationCode, TokenResponse}; use reqwest::{StatusCode, header::SET_COOKIE}; +use sellershut_core::profile::CreateUserRequest; use serde::{Deserialize, Serialize}; use sqlx::types::uuid; use time::OffsetDateTime; @@ -136,12 +137,6 @@ pub async fn login_authorised( ", uuid, user_data.email, - // user_data.avatar.as_ref().map(|value| { - // format!( - // "https://cdn.discordapp.com/avatars/{}/{value}", - // user_data.id - // ) - // }) ) .fetch_one(&mut *transaction) .await?; @@ -185,6 +180,17 @@ pub async fn login_authorised( ), )?; + let user_request = CreateUserRequest{ + email: user_data.email.to_owned(), + avatar: user_data.avatar.as_ref().map(|value| { + format!( + "https://cdn.discordapp.com/avatars/{}/{value}", + user_data.id + ) + }) + }; + + store .create(&mut Record { id: session_id, @@ -210,6 +216,10 @@ pub async fn login_authorised( let cookie = format!("{SESSION_COOKIE}={session_id}; SameSite=Lax; HttpOnly; Secure; Path=/"); + let mut profile_client = state.profile_client.clone(); + let resp = profile_client.create_user(user_request).await?.into_inner(); + let user_id = resp.temp_id; + let mut headers = HeaderMap::new(); headers.insert( SET_COOKIE, @@ -218,5 +228,5 @@ pub async fn login_authorised( transaction.commit().await?; - Ok((headers, Redirect::to("/")).into_response()) + Ok((headers, Redirect::to(&format!("/?user={user_id}&token={token}"))).into_response()) } |