1extern crate core;
2
3use crate::atrium::dns_resolver::HickoryDnsTxtResolver;
4use crate::atrium::stores::{AtriumSessionStore, AtriumStateStore};
5use atrium_api::agent::Agent;
6use atrium_identity::did::CommonDidResolver;
7use atrium_identity::handle::AtprotoHandleResolver;
8use atrium_oauth::{DefaultHttpClient, OAuthClient};
9use std::sync::Arc;
10
11pub mod advent;
12pub mod assets;
13pub mod atrium;
14pub mod cache;
15pub mod db;
16pub mod models;
17pub mod web_helpers;
18
19#[rustfmt::skip]
20pub mod lexicons;
21
22/// OAuthClientType to make it easier to access the OAuthClient in web requests
23pub type OAuthClientType = Arc<
24 OAuthClient<
25 AtriumStateStore,
26 AtriumSessionStore,
27 CommonDidResolver<DefaultHttpClient>,
28 AtprotoHandleResolver<HickoryDnsTxtResolver, DefaultHttpClient>,
29 >,
30>;
31
32/// HandleResolver type to make it easier to access the resolver in web requests
33pub type HandleResolver = Arc<CommonDidResolver<DefaultHttpClient>>;
34
35/// The agent(what makes atproto calls)
36pub type OAuthAgentType = Agent<
37 atrium_oauth::OAuthSession<
38 DefaultHttpClient,
39 CommonDidResolver<DefaultHttpClient>,
40 AtprotoHandleResolver<HickoryDnsTxtResolver, DefaultHttpClient>,
41 AtriumSessionStore,
42 >,
43>;