diff options
author | rtkay123 <dev@kanjala.com> | 2025-07-26 19:24:38 +0200 |
---|---|---|
committer | rtkay123 <dev@kanjala.com> | 2025-07-26 19:24:38 +0200 |
commit | e26d87f4fa18999c6bcfbcf32cfa85adab11acdd (patch) | |
tree | 603c6dacb6c448984bdcc5fa2b4a9314f1a23960 /crates/auth-service/src/client/discord.rs | |
parent | 236876f1d0539ac22a3977fd8599933725ad0f90 (diff) | |
download | sellershut-e26d87f4fa18999c6bcfbcf32cfa85adab11acdd.tar.bz2 sellershut-e26d87f4fa18999c6bcfbcf32cfa85adab11acdd.zip |
feat(auth): create user call
Diffstat (limited to 'crates/auth-service/src/client/discord.rs')
-rw-r--r-- | crates/auth-service/src/client/discord.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/crates/auth-service/src/client/discord.rs b/crates/auth-service/src/client/discord.rs new file mode 100644 index 0000000..9217684 --- /dev/null +++ b/crates/auth-service/src/client/discord.rs @@ -0,0 +1,30 @@ +use crate::{client::OauthClient, cnfg::OauthCredentials, error::AppError}; +use anyhow::Context; +use oauth2::{AuthUrl, ClientId, ClientSecret, RedirectUrl, TokenUrl, basic::BasicClient}; + +pub fn discord_client(config: &OauthCredentials) -> Result<OauthClient, AppError> { + let auth_url = config.auth_url.clone().unwrap_or_else(|| { + "https://discord.com/api/oauth2/authorize?response_type=code".to_string() + }); + + let token_url = config + .token_url + .clone() + .unwrap_or_else(|| "https://discord.com/api/oauth2/token".to_string()); + + let c = BasicClient::new(ClientId::new(config.client_id.to_owned())) + .set_client_secret(ClientSecret::new(config.client_secret.to_owned())) + .set_auth_uri( + AuthUrl::new(auth_url).context("failed to create new auth server url [discord]")?, + ) + .set_redirect_uri( + RedirectUrl::new(config.redirect_url.to_owned()) + .context("failed to create new redirect URL [discord]")?, + ) + .set_token_uri( + TokenUrl::new(token_url) + .context("failed to create new token endpoint URL [discord]")?, + ); + + Ok(c) +} |