this repo has no description
1pub mod api;
2pub mod auth;
3pub mod repo;
4pub mod state;
5pub mod storage;
6pub mod sync;
7
8use axum::{
9 Router,
10 routing::{any, get, post},
11};
12use state::AppState;
13
14pub fn app(state: AppState) -> Router {
15 Router::new()
16 .route("/health", get(api::server::health))
17 .route(
18 "/xrpc/com.atproto.server.describeServer",
19 get(api::server::describe_server),
20 )
21 .route(
22 "/xrpc/com.atproto.server.createAccount",
23 post(api::identity::create_account),
24 )
25 .route(
26 "/xrpc/com.atproto.server.createSession",
27 post(api::server::create_session),
28 )
29 .route(
30 "/xrpc/com.atproto.server.getSession",
31 get(api::server::get_session),
32 )
33 .route(
34 "/xrpc/com.atproto.server.deleteSession",
35 post(api::server::delete_session),
36 )
37 .route(
38 "/xrpc/com.atproto.server.refreshSession",
39 post(api::server::refresh_session),
40 )
41 .route(
42 "/xrpc/com.atproto.server.getServiceAuth",
43 get(api::server::get_service_auth),
44 )
45 .route(
46 "/xrpc/com.atproto.identity.resolveHandle",
47 get(api::identity::resolve_handle),
48 )
49 .route(
50 "/xrpc/com.atproto.repo.createRecord",
51 post(api::repo::create_record),
52 )
53 .route(
54 "/xrpc/com.atproto.repo.putRecord",
55 post(api::repo::put_record),
56 )
57 .route(
58 "/xrpc/com.atproto.repo.getRecord",
59 get(api::repo::get_record),
60 )
61 .route(
62 "/xrpc/com.atproto.repo.deleteRecord",
63 post(api::repo::delete_record),
64 )
65 .route(
66 "/xrpc/com.atproto.repo.listRecords",
67 get(api::repo::list_records),
68 )
69 .route(
70 "/xrpc/com.atproto.repo.describeRepo",
71 get(api::repo::describe_repo),
72 )
73 .route(
74 "/xrpc/com.atproto.repo.uploadBlob",
75 post(api::repo::upload_blob),
76 )
77 .route(
78 "/xrpc/com.atproto.repo.applyWrites",
79 post(api::repo::apply_writes),
80 )
81 .route(
82 "/xrpc/com.atproto.sync.getLatestCommit",
83 get(sync::get_latest_commit),
84 )
85 .route(
86 "/xrpc/com.atproto.sync.listRepos",
87 get(sync::list_repos),
88 )
89 // I know I know, I'm not supposed to implement appview endpoints. Leave me be
90 .route(
91 "/xrpc/app.bsky.feed.getTimeline",
92 get(api::feed::get_timeline),
93 )
94 .route("/.well-known/did.json", get(api::identity::well_known_did))
95 .route("/u/{handle}/did.json", get(api::identity::user_did_doc))
96 .route("/xrpc/{*method}", any(api::proxy::proxy_handler))
97 .with_state(state)
98}