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 08dfa91ba98df3b1c54e8690dbd31bd169da936c..922ef965314147adc2cc16f448073b933541e079 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 9bf4afc5db3b84141f5c6907f8b35632fcfa6af2..d5ba61ffba1ac7fdf422152a7eb23be6c380d936 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 df48a08a539390522d234760c04a16628acab668..1c3a5fa20d4d63a836a3f1660f2663bfa1684fdb 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 1662802c23693088c01b7f86ea926f496e76a7c3..f2ffb1dc5eeec21b1e05064f22daf19366d72bed 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, }, )?;