mockforge_http/auth/
oauth2.rs1use mockforge_core::{config::OAuth2Config, Error};
7
8pub fn create_oauth2_client(config: &OAuth2Config) -> Result<oauth2::basic::BasicClient, Error> {
10 let client_id = oauth2::ClientId::new(config.client_id.clone());
11 let client_secret = oauth2::ClientSecret::new(config.client_secret.clone());
12
13 let auth_url_str = config
14 .auth_url
15 .clone()
16 .ok_or_else(|| Error::generic("OAuth2 auth_url must be configured".to_string()))?;
17 let auth_url = oauth2::AuthUrl::new(auth_url_str)
18 .map_err(|e| Error::generic(format!("Invalid auth URL: {}", e)))?;
19
20 let token_url_str = config
21 .token_url
22 .clone()
23 .ok_or_else(|| Error::generic("OAuth2 token_url must be configured".to_string()))?;
24 let token_url = oauth2::TokenUrl::new(token_url_str)
25 .map_err(|e| Error::generic(format!("Invalid token URL: {}", e)))?;
26
27 Ok(oauth2::basic::BasicClient::new(
28 client_id,
29 Some(client_secret),
30 auth_url,
31 Some(token_url),
32 ))
33}