this repo has no description
1pub mod api; 2pub mod auth; 3pub mod notifications; 4pub mod repo; 5pub mod state; 6pub mod storage; 7pub mod sync; 8 9use axum::{ 10 Router, 11 routing::{any, get, post}, 12}; 13use state::AppState; 14 15pub fn app(state: AppState) -> Router { 16 Router::new() 17 .route("/health", get(api::server::health)) 18 .route("/xrpc/_health", get(api::server::health)) 19 .route( 20 "/xrpc/com.atproto.server.describeServer", 21 get(api::server::describe_server), 22 ) 23 .route( 24 "/xrpc/com.atproto.server.createAccount", 25 post(api::identity::create_account), 26 ) 27 .route( 28 "/xrpc/com.atproto.server.createSession", 29 post(api::server::create_session), 30 ) 31 .route( 32 "/xrpc/com.atproto.server.getSession", 33 get(api::server::get_session), 34 ) 35 .route( 36 "/xrpc/com.atproto.server.deleteSession", 37 post(api::server::delete_session), 38 ) 39 .route( 40 "/xrpc/com.atproto.server.refreshSession", 41 post(api::server::refresh_session), 42 ) 43 .route( 44 "/xrpc/com.atproto.server.getServiceAuth", 45 get(api::server::get_service_auth), 46 ) 47 .route( 48 "/xrpc/com.atproto.identity.resolveHandle", 49 get(api::identity::resolve_handle), 50 ) 51 .route( 52 "/xrpc/com.atproto.repo.createRecord", 53 post(api::repo::create_record), 54 ) 55 .route( 56 "/xrpc/com.atproto.repo.putRecord", 57 post(api::repo::put_record), 58 ) 59 .route( 60 "/xrpc/com.atproto.repo.getRecord", 61 get(api::repo::get_record), 62 ) 63 .route( 64 "/xrpc/com.atproto.repo.deleteRecord", 65 post(api::repo::delete_record), 66 ) 67 .route( 68 "/xrpc/com.atproto.repo.listRecords", 69 get(api::repo::list_records), 70 ) 71 .route( 72 "/xrpc/com.atproto.repo.describeRepo", 73 get(api::repo::describe_repo), 74 ) 75 .route( 76 "/xrpc/com.atproto.repo.uploadBlob", 77 post(api::repo::upload_blob), 78 ) 79 .route( 80 "/xrpc/com.atproto.repo.applyWrites", 81 post(api::repo::apply_writes), 82 ) 83 .route( 84 "/xrpc/com.atproto.sync.getLatestCommit", 85 get(sync::get_latest_commit), 86 ) 87 .route( 88 "/xrpc/com.atproto.sync.listRepos", 89 get(sync::list_repos), 90 ) 91 .route( 92 "/xrpc/com.atproto.sync.getBlob", 93 get(sync::get_blob), 94 ) 95 .route( 96 "/xrpc/com.atproto.sync.listBlobs", 97 get(sync::list_blobs), 98 ) 99 .route( 100 "/xrpc/com.atproto.sync.getRepoStatus", 101 get(sync::get_repo_status), 102 ) 103 .route( 104 "/xrpc/com.atproto.server.checkAccountStatus", 105 get(api::server::check_account_status), 106 ) 107 .route( 108 "/xrpc/com.atproto.identity.getRecommendedDidCredentials", 109 get(api::identity::get_recommended_did_credentials), 110 ) 111 .route( 112 "/xrpc/com.atproto.repo.listMissingBlobs", 113 get(api::repo::list_missing_blobs), 114 ) 115 .route( 116 "/xrpc/com.atproto.sync.notifyOfUpdate", 117 post(sync::notify_of_update), 118 ) 119 .route( 120 "/xrpc/com.atproto.sync.requestCrawl", 121 post(sync::request_crawl), 122 ) 123 .route( 124 "/xrpc/com.atproto.sync.getBlocks", 125 get(sync::get_blocks), 126 ) 127 .route( 128 "/xrpc/com.atproto.sync.getRepo", 129 get(sync::get_repo), 130 ) 131 .route( 132 "/xrpc/com.atproto.sync.getRecord", 133 get(sync::get_record), 134 ) 135 .route( 136 "/xrpc/com.atproto.sync.subscribeRepos", 137 get(sync::subscribe_repos), 138 ) 139 .route( 140 "/xrpc/com.atproto.moderation.createReport", 141 post(api::moderation::create_report), 142 ) 143 .route( 144 "/xrpc/com.atproto.admin.getAccountInfo", 145 get(api::admin::get_account_info), 146 ) 147 .route( 148 "/xrpc/com.atproto.admin.getAccountInfos", 149 get(api::admin::get_account_infos), 150 ) 151 .route( 152 "/xrpc/com.atproto.server.activateAccount", 153 post(api::server::activate_account), 154 ) 155 .route( 156 "/xrpc/com.atproto.server.deactivateAccount", 157 post(api::server::deactivate_account), 158 ) 159 .route( 160 "/xrpc/com.atproto.server.requestAccountDelete", 161 post(api::server::request_account_delete), 162 ) 163 .route( 164 "/xrpc/com.atproto.server.requestPasswordReset", 165 post(api::server::request_password_reset), 166 ) 167 .route( 168 "/xrpc/com.atproto.server.resetPassword", 169 post(api::server::reset_password), 170 ) 171 .route( 172 "/xrpc/com.atproto.server.requestEmailUpdate", 173 post(api::server::request_email_update), 174 ) 175 .route( 176 "/xrpc/com.atproto.server.confirmEmail", 177 post(api::server::confirm_email), 178 ) 179 .route( 180 "/xrpc/com.atproto.server.updateEmail", 181 post(api::server::update_email), 182 ) 183 .route( 184 "/xrpc/com.atproto.server.reserveSigningKey", 185 post(api::server::reserve_signing_key), 186 ) 187 .route( 188 "/xrpc/com.atproto.identity.updateHandle", 189 post(api::identity::update_handle), 190 ) 191 .route( 192 "/xrpc/com.atproto.admin.deleteAccount", 193 post(api::admin::delete_account), 194 ) 195 .route( 196 "/xrpc/com.atproto.admin.updateAccountEmail", 197 post(api::admin::update_account_email), 198 ) 199 .route( 200 "/xrpc/com.atproto.admin.updateAccountHandle", 201 post(api::admin::update_account_handle), 202 ) 203 .route( 204 "/xrpc/com.atproto.admin.updateAccountPassword", 205 post(api::admin::update_account_password), 206 ) 207 .route( 208 "/xrpc/com.atproto.server.listAppPasswords", 209 get(api::server::list_app_passwords), 210 ) 211 .route( 212 "/xrpc/com.atproto.server.createAppPassword", 213 post(api::server::create_app_password), 214 ) 215 .route( 216 "/xrpc/com.atproto.server.revokeAppPassword", 217 post(api::server::revoke_app_password), 218 ) 219 .route( 220 "/xrpc/com.atproto.server.createInviteCode", 221 post(api::server::create_invite_code), 222 ) 223 .route( 224 "/xrpc/com.atproto.server.createInviteCodes", 225 post(api::server::create_invite_codes), 226 ) 227 .route( 228 "/xrpc/com.atproto.server.getAccountInviteCodes", 229 get(api::server::get_account_invite_codes), 230 ) 231 .route( 232 "/xrpc/com.atproto.admin.getInviteCodes", 233 get(api::admin::get_invite_codes), 234 ) 235 .route( 236 "/xrpc/com.atproto.admin.disableAccountInvites", 237 post(api::admin::disable_account_invites), 238 ) 239 .route( 240 "/xrpc/com.atproto.admin.enableAccountInvites", 241 post(api::admin::enable_account_invites), 242 ) 243 .route( 244 "/xrpc/com.atproto.admin.disableInviteCodes", 245 post(api::admin::disable_invite_codes), 246 ) 247 .route( 248 "/xrpc/com.atproto.admin.getSubjectStatus", 249 get(api::admin::get_subject_status), 250 ) 251 .route( 252 "/xrpc/com.atproto.admin.updateSubjectStatus", 253 post(api::admin::update_subject_status), 254 ) 255 .route( 256 "/xrpc/com.atproto.admin.sendEmail", 257 post(api::admin::send_email), 258 ) 259 // I know I know, I'm not supposed to implement appview endpoints. Leave me be 260 .route( 261 "/xrpc/app.bsky.feed.getTimeline", 262 get(api::feed::get_timeline), 263 ) 264 .route("/.well-known/did.json", get(api::identity::well_known_did)) 265 .route("/u/{handle}/did.json", get(api::identity::user_did_doc)) 266 .route("/xrpc/{*method}", any(api::proxy::proxy_handler)) 267 .with_state(state) 268}