this repo has no description
1pub mod api;
2pub mod state;
3pub mod auth;
4pub mod repo;
5pub mod storage;
6
7use axum::{
8 routing::{get, post, any},
9 Router,
10};
11use state::AppState;
12
13pub fn app(state: AppState) -> Router {
14 Router::new()
15 .route("/health", get(api::server::health))
16 .route("/xrpc/com.atproto.server.describeServer", get(api::server::describe_server))
17 .route("/xrpc/com.atproto.server.createAccount", post(api::identity::create_account))
18 .route("/xrpc/com.atproto.server.createSession", post(api::server::create_session))
19 .route("/xrpc/com.atproto.server.getSession", get(api::server::get_session))
20 .route("/xrpc/com.atproto.server.deleteSession", post(api::server::delete_session))
21 .route("/xrpc/com.atproto.server.refreshSession", post(api::server::refresh_session))
22 .route("/xrpc/com.atproto.repo.createRecord", post(api::repo::create_record))
23 .route("/xrpc/com.atproto.repo.putRecord", post(api::repo::put_record))
24 .route("/xrpc/com.atproto.repo.getRecord", get(api::repo::get_record))
25 .route("/xrpc/com.atproto.repo.deleteRecord", post(api::repo::delete_record))
26 .route("/xrpc/com.atproto.repo.listRecords", get(api::repo::list_records))
27 .route("/xrpc/com.atproto.repo.describeRepo", get(api::repo::describe_repo))
28 .route("/xrpc/com.atproto.repo.uploadBlob", post(api::repo::upload_blob))
29 .route("/.well-known/did.json", get(api::identity::well_known_did))
30 .route("/u/{handle}/did.json", get(api::identity::user_did_doc))
31 .route("/xrpc/{*method}", any(api::proxy::proxy_handler))
32 .with_state(state)
33}