Skip to content

Commit aedbfa2

Browse files
committed
Update resolver config
1 parent 3c53e71 commit aedbfa2

12 files changed

+40
-14
lines changed

atrium-oauth/oauth-client/examples/main.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ struct HickoryDnsTxtResolver {
1515
resolver: TokioAsyncResolver,
1616
}
1717

18-
impl HickoryDnsTxtResolver {
19-
pub fn new() -> Self {
18+
impl Default for HickoryDnsTxtResolver {
19+
fn default() -> Self {
2020
Self {
2121
resolver: TokioAsyncResolver::tokio_from_system_conf()
2222
.expect("failed to create resolver"),
@@ -50,7 +50,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
5050
resolver: OAuthResolverConfig {
5151
did: DidResolverConfig::default(),
5252
handle: HandleResolverConfig {
53-
r#impl: HandleResolverImpl::Atproto(Arc::new(HickoryDnsTxtResolver::new())),
53+
r#impl: HandleResolverImpl::Atproto(Arc::new(HickoryDnsTxtResolver::default())),
5454
},
5555
},
5656
state_store: MemoryStateStore::default(),

atrium-oauth/oauth-client/src/identity/did.rs

+1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ use super::Resolver;
77
use atrium_api::did_doc::DidDocument;
88
use atrium_api::types::string::Did;
99
pub use common_resolver::{CommonDidResolver, CommonDidResolverConfig};
10+
pub(crate) use plc_resolver::DEFAULT_PLC_DIRECTORY_URL;
1011

1112
pub trait DidResolver: Resolver<Input = Did, Output = DidDocument> {}

atrium-oauth/oauth-client/src/identity/did/common_resolver.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ use super::web_resolver::{WebDidResolver, WebDidResolverConfig};
55
use super::DidResolver;
66
use std::sync::Arc;
77

8-
#[derive(Default)]
8+
#[derive(Clone, Debug)]
99
pub struct CommonDidResolverConfig<T> {
10-
pub plc_directory_url: Option<String>,
10+
pub plc_directory_url: String,
1111
pub http_client: Arc<T>,
1212
}
1313

atrium-oauth/oauth-client/src/identity/did/plc_resolver.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ use atrium_xrpc::http::{Request, Uri};
88
use atrium_xrpc::HttpClient;
99
use std::sync::Arc;
1010

11-
const DEFAULT_PLC_DIRECTORY_URL: &str = "https://plc.directory/";
11+
pub(crate) const DEFAULT_PLC_DIRECTORY_URL: &str = "https://plc.directory/";
1212

13+
#[derive(Clone, Debug)]
1314
pub struct PlcDidResolverConfig<T> {
14-
pub plc_directory_url: Option<String>,
15+
pub plc_directory_url: String,
1516
pub http_client: Arc<T>,
1617
}
1718

@@ -23,10 +24,7 @@ pub struct PlcDidResolver<T> {
2324
impl<T> PlcDidResolver<T> {
2425
pub fn new(config: PlcDidResolverConfig<T>) -> Result<Self> {
2526
Ok(Self {
26-
plc_directory_url: config
27-
.plc_directory_url
28-
.unwrap_or(DEFAULT_PLC_DIRECTORY_URL.into())
29-
.parse()?,
27+
plc_directory_url: config.plc_directory_url.parse()?,
3028
http_client: config.http_client,
3129
})
3230
}

atrium-oauth/oauth-client/src/identity/did/web_resolver.rs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use std::sync::Arc;
99

1010
const DID_WEB_PREFIX: &str = "did:web:";
1111

12+
#[derive(Clone, Debug)]
1213
pub struct WebDidResolverConfig<T> {
1314
pub http_client: Arc<T>,
1415
}

atrium-oauth/oauth-client/src/identity/handle.rs

+11
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,22 @@ impl Resolver for DynamicHandleResolver {
3939

4040
impl HandleResolver for DynamicHandleResolver {}
4141

42+
#[derive(Clone)]
4243
pub enum HandleResolverImpl {
4344
Atproto(Arc<dyn DnsTxtResolver + Send + Sync + 'static>),
4445
AppView(String),
4546
}
4647

48+
impl std::fmt::Debug for HandleResolverImpl {
49+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
50+
match self {
51+
HandleResolverImpl::Atproto(_) => write!(f, "Atproto"),
52+
HandleResolverImpl::AppView(url) => write!(f, "AppView({url})"),
53+
}
54+
}
55+
}
56+
57+
#[derive(Clone, Debug)]
4758
pub struct HandleResolverConfig<T> {
4859
pub r#impl: HandleResolverImpl,
4960
pub http_client: Arc<T>,

atrium-oauth/oauth-client/src/identity/handle/appview_resolver.rs

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use atrium_xrpc::http::{Request, Uri};
88
use atrium_xrpc::HttpClient;
99
use std::sync::Arc;
1010

11+
#[derive(Clone, Debug)]
1112
pub struct AppViewHandleResolverConfig<T> {
1213
pub service_url: String,
1314
pub http_client: Arc<T>,

atrium-oauth/oauth-client/src/identity/handle/atproto_resolver.rs

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use atrium_xrpc::HttpClient;
88
use futures::future::select_ok;
99
use std::sync::Arc;
1010

11+
#[derive(Clone, Debug)]
1112
pub struct AtprotoHandleResolverConfig<R, T> {
1213
pub dns_txt_resolver: R,
1314
pub http_client: Arc<T>,

atrium-oauth/oauth-client/src/identity/handle/dns_resolver.rs

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ impl DnsTxtResolver for DynamicDnsTxtResolver {
3737
}
3838
}
3939

40+
#[derive(Clone, Debug)]
4041
pub struct DnsHandleResolverConfig<T> {
4142
pub dns_txt_resolver: T,
4243
}

atrium-oauth/oauth-client/src/identity/handle/well_known_resolver.rs

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use std::sync::Arc;
88

99
const WELL_KNWON_PATH: &str = "/.well-known/atproto-did";
1010

11+
#[derive(Clone, Debug)]
1112
pub struct WellKnownHandleResolverConfig<T> {
1213
pub http_client: Arc<T>,
1314
}

atrium-oauth/oauth-client/src/identity/identity_resolver.rs

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use super::did::{CommonDidResolver, CommonDidResolverConfig};
1+
use super::did::{CommonDidResolver, CommonDidResolverConfig, DEFAULT_PLC_DIRECTORY_URL};
22
use super::error::{Error, Result};
33
use super::handle::{DynamicHandleResolver, HandleResolverImpl};
44
use super::Resolver;
@@ -15,15 +15,25 @@ pub struct ResolvedIdentity {
1515
pub pds: String,
1616
}
1717

18-
#[derive(Clone, Debug, Default)]
18+
#[derive(Clone, Debug)]
1919
pub struct DidResolverConfig {
20-
pub plc_directory_url: Option<String>,
20+
pub plc_directory_url: String,
2121
}
2222

23+
impl Default for DidResolverConfig {
24+
fn default() -> Self {
25+
Self {
26+
plc_directory_url: DEFAULT_PLC_DIRECTORY_URL.to_string(),
27+
}
28+
}
29+
}
30+
31+
#[derive(Clone, Debug)]
2332
pub struct HandleResolverConfig {
2433
pub r#impl: HandleResolverImpl,
2534
}
2635

36+
#[derive(Clone, Debug)]
2737
pub struct IdentityResolverConfig<T> {
2838
pub did: DidResolverConfig,
2939
pub handle: HandleResolverConfig,

atrium-oauth/oauth-client/src/resolver.rs

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use oauth_authorization_server_resolver::DefaultOAuthAuthorizationServerResolver
1313
use oauth_protected_resource_resolver::OAuthProtectedResourceMetadata;
1414
use std::sync::Arc;
1515

16+
#[derive(Clone, Debug)]
1617
pub struct OAuthResolverConfig {
1718
pub did: DidResolverConfig,
1819
pub handle: HandleResolverConfig,

0 commit comments

Comments
 (0)