WIP

Nathan Sobo created

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

crates/collab/src/api.rs 🔗

@@ -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 {

crates/collab/src/main.rs 🔗

@@ -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())

crates/collab/src/rpc.rs 🔗

@@ -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;