From 5e57a33df70ccd0372a453c0afb6d20dbec7ab7a Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 18 Oct 2022 13:02:30 -0700 Subject: [PATCH] Store entire Config struct on collab AppState --- crates/collab/src/api.rs | 2 +- crates/collab/src/integration_tests.rs | 3 +-- crates/collab/src/main.rs | 12 +++++------- crates/collab/src/rpc.rs | 9 ++++++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index 08dfa91ba9..922ef96531 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -76,7 +76,7 @@ pub async fn validate_api_token(req: Request, next: Next) -> impl IntoR let state = req.extensions().get::>().unwrap(); - if token != state.api_token { + if token != state.config.api_token { Err(Error::Http( StatusCode::UNAUTHORIZED, "invalid authorization token".to_string(), diff --git a/crates/collab/src/integration_tests.rs b/crates/collab/src/integration_tests.rs index 9bf4afc5db..d5ba61ffba 100644 --- a/crates/collab/src/integration_tests.rs +++ b/crates/collab/src/integration_tests.rs @@ -6357,8 +6357,7 @@ impl TestServer { async fn build_app_state(test_db: &TestDb) -> Arc { Arc::new(AppState { db: test_db.db().clone(), - api_token: Default::default(), - invite_link_prefix: Default::default(), + config: Default::default(), }) } diff --git a/crates/collab/src/main.rs b/crates/collab/src/main.rs index df48a08a53..1c3a5fa20d 100644 --- a/crates/collab/src/main.rs +++ b/crates/collab/src/main.rs @@ -34,17 +34,15 @@ pub struct Config { pub struct AppState { db: Arc, - api_token: String, - invite_link_prefix: String, + config: Config, } impl AppState { - async fn new(config: &Config) -> Result> { + async fn new(config: Config) -> Result> { let db = PostgresDb::new(&config.database_url, 5).await?; let this = Self { db: Arc::new(db), - api_token: config.api_token.clone(), - invite_link_prefix: config.invite_link_prefix.clone(), + config, }; Ok(Arc::new(this)) } @@ -61,9 +59,9 @@ async fn main() -> Result<()> { let config = envy::from_env::().expect("error loading config"); init_tracing(&config); - let state = AppState::new(&config).await?; + let state = AppState::new(config).await?; - let listener = TcpListener::bind(&format!("0.0.0.0:{}", config.http_port)) + let listener = TcpListener::bind(&format!("0.0.0.0:{}", state.config.http_port)) .expect("failed to bind TCP listener"); let rpc_server = rpc::Server::new(state.clone(), None); diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 1662802c23..f2ffb1dc5e 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -397,7 +397,7 @@ impl Server { if let Some((code, count)) = invite_code { this.peer.send(connection_id, proto::UpdateInviteInfo { - url: format!("{}{}", this.app_state.invite_link_prefix, code), + url: format!("{}{}", this.app_state.config.invite_link_prefix, code), count, })?; } @@ -561,7 +561,7 @@ impl Server { self.peer.send( connection_id, proto::UpdateInviteInfo { - url: format!("{}{}", self.app_state.invite_link_prefix, &code), + url: format!("{}{}", self.app_state.config.invite_link_prefix, &code), count: user.invite_count as u32, }, )?; @@ -579,7 +579,10 @@ impl Server { self.peer.send( connection_id, proto::UpdateInviteInfo { - url: format!("{}{}", self.app_state.invite_link_prefix, invite_code), + url: format!( + "{}{}", + self.app_state.config.invite_link_prefix, invite_code + ), count: user.invite_count as u32, }, )?;