diff --git a/services/identity/src/main.rs b/services/identity/src/main.rs --- a/services/identity/src/main.rs +++ b/services/identity/src/main.rs @@ -1,3 +1,5 @@ +use std::sync::Arc; + use clap::{Parser, Subcommand}; use database::DatabaseClient; use tonic::transport::Server; @@ -49,7 +51,7 @@ let addr = IDENTITY_SERVICE_SOCKET_ADDR.parse()?; let config = Config::load()?; let aws_config = aws_config::from_env().region("us-east-2").load().await; - let database_client = DatabaseClient::new(&aws_config); + let database_client = Arc::new(DatabaseClient::new(&aws_config)); let identity_service = MyIdentityService::new(config, database_client); Server::builder() .add_service(IdentityServiceServer::new(identity_service)) diff --git a/services/identity/src/service.rs b/services/identity/src/service.rs --- a/services/identity/src/service.rs +++ b/services/identity/src/service.rs @@ -12,6 +12,7 @@ use rand::{CryptoRng, Rng}; use siwe::Message; use std::pin::Pin; +use std::sync::Arc; use tokio::sync::mpsc; use tokio_stream::{wrappers::ReceiverStream, StreamExt}; use tonic::{Request, Response, Status}; @@ -59,7 +60,7 @@ #[derive(derive_more::Constructor)] pub struct MyIdentityService { config: Config, - client: DatabaseClient, + client: Arc, } #[tonic::async_trait] @@ -345,7 +346,7 @@ } async fn put_token_helper( - client: DatabaseClient, + client: Arc, auth_type: AuthType, user_id: &str, device_id: &str, @@ -427,7 +428,7 @@ } async fn wallet_login_helper( - client: DatabaseClient, + client: Arc, wallet_login_request: WalletLoginRequestStruct, rng: &mut (impl Rng + CryptoRng), num_messages_received: u8, @@ -460,7 +461,7 @@ async fn pake_login_start( config: Config, - client: DatabaseClient, + client: Arc, user_id: &str, pake_credential_request: &[u8], num_messages_received: u8, @@ -532,7 +533,7 @@ async fn pake_login_finish( user_id: &str, device_id: &str, - client: DatabaseClient, + client: Arc, server_login: Option>, pake_credential_finalization: &[u8], rng: &mut (impl Rng + CryptoRng), @@ -617,7 +618,7 @@ async fn pake_registration_finish( user_id: &str, - client: DatabaseClient, + client: Arc, registration_upload_bytes: &[u8], server_registration: Option>, num_messages_received: u8,