relay filter/appview bootstrap
at main 1.1 kB view raw
1mod channels; 2pub mod error; 3mod invites; 4mod lattices; 5mod memberships; 6mod shards; 7 8use std::sync::Arc; 9 10use axum::{ 11 extract::Request, 12 routing::get, 13 Router, 14}; 15 16use crate::AppState; 17use error::ApiError; 18 19pub fn router() -> Router<Arc<AppState>> { 20 Router::new() 21 .route( 22 "/xrpc/systems.gmstn.development.channel.listChannels", 23 get(channels::list_channels), 24 ) 25 .route( 26 "/xrpc/systems.gmstn.development.channel.listInvites", 27 get(invites::list_invites), 28 ) 29 .route( 30 "/xrpc/systems.gmstn.development.channel.listMemberships", 31 get(memberships::list_memberships), 32 ) 33 .route( 34 "/xrpc/systems.gmstn.development.lattice.listLattices", 35 get(lattices::list_lattices), 36 ) 37 .route( 38 "/xrpc/systems.gmstn.development.shard.listShards", 39 get(shards::list_shards), 40 ) 41 .fallback(fallback_handler) 42} 43 44async fn fallback_handler(request: Request) -> ApiError { 45 let path = request.uri().path().to_string(); 46 ApiError::MethodNotFound(path) 47}