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 .route( 90 "/xrpc/com.atproto.sync.getBlob", 91 get(sync::get_blob), 92 ) 93 .route( 94 "/xrpc/com.atproto.sync.listBlobs", 95 get(sync::list_blobs), 96 ) 97 .route( 98 "/xrpc/com.atproto.sync.getRepoStatus", 99 get(sync::get_repo_status), 100 ) 101 .route( 102 "/xrpc/com.atproto.server.checkAccountStatus", 103 get(api::server::check_account_status), 104 ) 105 .route( 106 "/xrpc/com.atproto.identity.getRecommendedDidCredentials", 107 get(api::identity::get_recommended_did_credentials), 108 ) 109 .route( 110 "/xrpc/com.atproto.repo.listMissingBlobs", 111 get(api::repo::list_missing_blobs), 112 ) 113 .route( 114 "/xrpc/com.atproto.sync.notifyOfUpdate", 115 post(sync::notify_of_update), 116 ) 117 .route( 118 "/xrpc/com.atproto.sync.requestCrawl", 119 post(sync::request_crawl), 120 ) 121 .route( 122 "/xrpc/com.atproto.sync.getBlocks", 123 get(sync::get_blocks), 124 ) 125 .route( 126 "/xrpc/com.atproto.sync.getRepo", 127 get(sync::get_repo), 128 ) 129 .route( 130 "/xrpc/com.atproto.sync.getRecord", 131 get(sync::get_record), 132 ) 133 .route( 134 "/xrpc/com.atproto.moderation.createReport", 135 post(api::moderation::create_report), 136 ) 137 .route( 138 "/xrpc/com.atproto.admin.getAccountInfo", 139 get(api::admin::get_account_info), 140 ) 141 .route( 142 "/xrpc/com.atproto.admin.getAccountInfos", 143 get(api::admin::get_account_infos), 144 ) 145 .route( 146 "/xrpc/com.atproto.server.activateAccount", 147 post(api::server::activate_account), 148 ) 149 .route( 150 "/xrpc/com.atproto.server.deactivateAccount", 151 post(api::server::deactivate_account), 152 ) 153 .route( 154 "/xrpc/com.atproto.identity.updateHandle", 155 post(api::identity::update_handle), 156 ) 157 .route( 158 "/xrpc/com.atproto.admin.deleteAccount", 159 post(api::admin::delete_account), 160 ) 161 .route( 162 "/xrpc/com.atproto.admin.updateAccountEmail", 163 post(api::admin::update_account_email), 164 ) 165 .route( 166 "/xrpc/com.atproto.admin.updateAccountHandle", 167 post(api::admin::update_account_handle), 168 ) 169 .route( 170 "/xrpc/com.atproto.admin.updateAccountPassword", 171 post(api::admin::update_account_password), 172 ) 173 .route( 174 "/xrpc/com.atproto.server.listAppPasswords", 175 get(api::server::list_app_passwords), 176 ) 177 .route( 178 "/xrpc/com.atproto.server.createAppPassword", 179 post(api::server::create_app_password), 180 ) 181 .route( 182 "/xrpc/com.atproto.server.revokeAppPassword", 183 post(api::server::revoke_app_password), 184 ) 185 // I know I know, I'm not supposed to implement appview endpoints. Leave me be 186 .route( 187 "/xrpc/app.bsky.feed.getTimeline", 188 get(api::feed::get_timeline), 189 ) 190 .route("/.well-known/did.json", get(api::identity::well_known_did)) 191 .route("/u/{handle}/did.json", get(api::identity::user_did_doc)) 192 .route("/xrpc/{*method}", any(api::proxy::proxy_handler)) 193 .with_state(state) 194}