this repo has no description
1pub mod api;
2pub mod auth;
3pub mod repo;
4pub mod state;
5pub mod storage;
6
7use axum::{
8 Router,
9 routing::{any, get, post},
10};
11use state::AppState;
12
13pub fn app(state: AppState) -> Router {
14 Router::new()
15 .route("/health", get(api::server::health))
16 .route(
17 "/xrpc/com.atproto.server.describeServer",
18 get(api::server::describe_server),
19 )
20 .route(
21 "/xrpc/com.atproto.server.createAccount",
22 post(api::identity::create_account),
23 )
24 .route(
25 "/xrpc/com.atproto.server.createSession",
26 post(api::server::create_session),
27 )
28 .route(
29 "/xrpc/com.atproto.server.getSession",
30 get(api::server::get_session),
31 )
32 .route(
33 "/xrpc/com.atproto.server.deleteSession",
34 post(api::server::delete_session),
35 )
36 .route(
37 "/xrpc/com.atproto.server.refreshSession",
38 post(api::server::refresh_session),
39 )
40 .route(
41 "/xrpc/com.atproto.repo.createRecord",
42 post(api::repo::create_record),
43 )
44 .route(
45 "/xrpc/com.atproto.repo.putRecord",
46 post(api::repo::put_record),
47 )
48 .route(
49 "/xrpc/com.atproto.repo.getRecord",
50 get(api::repo::get_record),
51 )
52 .route(
53 "/xrpc/com.atproto.repo.deleteRecord",
54 post(api::repo::delete_record),
55 )
56 .route(
57 "/xrpc/com.atproto.repo.listRecords",
58 get(api::repo::list_records),
59 )
60 .route(
61 "/xrpc/com.atproto.repo.describeRepo",
62 get(api::repo::describe_repo),
63 )
64 .route(
65 "/xrpc/com.atproto.repo.uploadBlob",
66 post(api::repo::upload_blob),
67 )
68 .route("/.well-known/did.json", get(api::identity::well_known_did))
69 .route("/u/{handle}/did.json", get(api::identity::user_did_doc))
70 .route("/xrpc/{*method}", any(api::proxy::proxy_handler))
71 .with_state(state)
72}