Change summary
crates/collab/src/api.rs | 1 +
crates/collab/src/main.rs | 25 +++++--------------------
crates/collab/src/rpc.rs | 7 +++++++
3 files changed, 13 insertions(+), 20 deletions(-)
Detailed changes
@@ -28,6 +28,7 @@ pub fn routes(state: Arc<AppState>) -> Router<Body> {
.layer(Extension(state))
.layer(middleware::from_fn(validate_api_token)),
)
+ // TODO: Compression on API routes?
}
pub async fn validate_api_token<B>(req: Request<B>, next: Next<B>) -> impl IntoResponse {
@@ -51,28 +51,13 @@ async fn main() -> Result<()> {
let config = envy::from_env::<Config>().expect("error loading config");
let state = AppState::new(&config).await?;
- let rpc = Peer::new();
- run_server(
- state.clone(),
- rpc,
- TcpListener::bind(&format!("0.0.0.0:{}", config.http_port))
- .expect("failed to bind TCP listener"),
- )
- .await?;
- Ok(())
-}
-
-pub async fn run_server(
- state: Arc<AppState>,
- peer: Arc<Peer>,
- listener: TcpListener,
-) -> Result<()> {
- // TODO: Compression on API routes?
- // TODO: Authenticate API routes.
- let app = Router::<Body>::new().merge(api::routes(state.clone()));
+ let listener = TcpListener::bind(&format!("0.0.0.0:{}", config.http_port))
+ .expect("failed to bind TCP listener");
- // TODO: Add rpc routes
+ let app = Router::<Body>::new()
+ .merge(api::routes(state))
+ .merge(rpc::routes(Peer::new()));
axum::Server::from_tcp(listener)?
.serve(app.into_make_service())
@@ -1099,6 +1099,10 @@
// }
// }
+pub fn routes(peer: Arc<Peer>) -> Router<Body> {
+ Router::new()
+}
+
// pub fn add_routes(app: &mut tide::Server<Arc<AppState>>, rpc: &Arc<Peer>) {
// let server = Server::new(app.state().clone(), rpc.clone(), None);
// app.at("/rpc").get(move |request: Request<Arc<AppState>>| {
@@ -6360,3 +6364,6 @@
// }
// }
// }
+
+use axum::{body::Body, Router};
+use client::Peer;