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