1use axum::Router;
2use jacquard::api::com_atproto::identity::resolve_did::ResolveDidRequest;
3use jacquard_axum::{ExtractXrpc, IntoRouter};
4use miette::{IntoDiagnostic, Result};
5use tracing_subscriber::EnvFilter;
6
7#[axum_macros::debug_handler]
8async fn handler(ExtractXrpc(_args): ExtractXrpc<ResolveDidRequest>) -> &'static str {
9 "hello world!"
10 // let res = jacquard::identity::slingshot_resolver_default();
11 // let doc = res.resolve_did_doc(&args.did).await?;
12 // let valid_doc = doc.parse()?;
13 // let doc_value = serde_json::to_value(valid_doc).unwrap();
14 // Ok(ResolveDidOutput {
15 // did_doc: Data::from_json(&doc_value).unwrap().into_static(),
16 // extra_data: Default::default(),
17 // }
18 // .into())
19}
20
21#[tokio::main]
22async fn main() -> Result<()> {
23 tracing_subscriber::fmt()
24 .with_timer(tracing_subscriber::fmt::time::UtcTime::rfc_3339())
25 .with_env_filter(EnvFilter::from_env("QDPDS_LOG"))
26 .init();
27 let app = Router::new()
28 .route("/", axum::routing::get(|| async { "hello world!" }))
29 .merge(ResolveDidRequest::into_router(handler))
30 .layer(tower_http::trace::TraceLayer::new_for_http());
31 let listener = tokio::net::TcpListener::bind("0.0.0.0:3000")
32 .await
33 .into_diagnostic()?;
34 axum::serve(listener, app).await.unwrap();
35 Ok(())
36}