WIP

Nathan Sobo created

Change summary

crates/collab/src/main.rs | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

Detailed changes

crates/collab/src/main.rs 🔗

@@ -8,9 +8,13 @@ use ::rpc::Peer;
 use anyhow::Result;
 use async_trait::async_trait;
 use db::{Db, PostgresDb};
+use hyper::{
+    server::conn::AddrStream,
+    service::{make_service_fn, service_fn},
+    Body, Request, Response, Server,
+};
 use serde::Deserialize;
-use std::sync::Arc;
-use tokio::net::TcpListener;
+use std::{convert::Infallible, net::TcpListener, sync::Arc};
 
 // type Request = tide::Request<Arc<AppState>>;
 
@@ -71,13 +75,24 @@ async fn main() -> Result<()> {
     run_server(
         state.clone(),
         rpc,
-        TcpListener::bind(&format!("0.0.0.0:{}", state.config.http_port)).await?,
+        TcpListener::bind(&format!("0.0.0.0:{}", state.config.http_port))
+            .expect("failed to bind TCP listener"),
     )
     .await?;
     Ok(())
 }
 
 pub async fn run_server(state: Arc<AppState>, rpc: Arc<Peer>, listener: TcpListener) -> Result<()> {
+    let make_service = make_service_fn(|_: &AddrStream| async move {
+        Ok::<_, Infallible>(service_fn(|_: Request<Body>| async move {
+            Response::new(Body::from(format!("hello"))
+        }))
+    });
+
+    Server::from_tcp(listener)
+        .expect("could not create server")
+        .serve(make_service);
+
     // let mut app = tide::with_state(state.clone());
     // rpc::add_routes(&mut app, &rpc);