Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F2749995
D13269.id44137.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
25 KB
Referenced Files
None
Subscribers
None
D13269.id44137.diff
View Options
diff --git a/services/identity/src/client_service.rs b/services/identity/src/client_service.rs
--- a/services/identity/src/client_service.rs
+++ b/services/identity/src/client_service.rs
@@ -120,8 +120,7 @@
let username_in_reserved_usernames_table = self
.client
.get_user_id_from_reserved_usernames_table(&message.username)
- .await
- .map_err(handle_db_error)?
+ .await?
.is_some();
if username_in_reserved_usernames_table {
@@ -165,8 +164,7 @@
.insert_workflow(WorkflowInProgress::Registration(Box::new(
registration_state,
)))
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = RegistrationStartResponse {
session_id,
@@ -186,8 +184,7 @@
let Some(original_username) = self
.client
.get_original_username_from_reserved_usernames_table(&message.username)
- .await
- .map_err(handle_db_error)?
+ .await?
else {
return Err(tonic::Status::permission_denied(
tonic_status_messages::USERNAME_NOT_RESERVED,
@@ -226,8 +223,7 @@
.insert_workflow(WorkflowInProgress::Registration(Box::new(
registration_state,
)))
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = RegistrationStartResponse {
session_id,
@@ -244,11 +240,8 @@
let platform_metadata = get_platform_metadata(&request)?;
let message = request.into_inner();
- if let Some(WorkflowInProgress::Registration(state)) = self
- .client
- .get_workflow(message.session_id)
- .await
- .map_err(handle_db_error)?
+ if let Some(WorkflowInProgress::Registration(state)) =
+ self.client.get_workflow(message.session_id).await?
{
let server_registration = comm_opaque2::server::Registration::new();
let password_file = server_registration
@@ -266,8 +259,7 @@
platform_metadata,
login_time,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
// Create access token
let token = AccessTokenData::with_created_time(
@@ -280,11 +272,7 @@
let access_token = token.access_token.clone();
- self
- .client
- .put_access_token_data(token)
- .await
- .map_err(handle_db_error)?;
+ self.client.put_access_token_data(token).await?;
let response = AuthResponse {
user_id,
@@ -310,8 +298,7 @@
let user_id_and_password_file = self
.client
.get_user_info_and_password_file_from_username(&message.username)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let UserInfoAndPasswordFile {
user_id,
@@ -328,8 +315,7 @@
let username_in_reserved_usernames_table = self
.client
.get_user_id_from_reserved_usernames_table(&message.username)
- .await
- .map_err(handle_db_error)?
+ .await?
.is_some();
if username_in_reserved_usernames_table {
@@ -390,8 +376,7 @@
let session_id = self
.client
.insert_workflow(WorkflowInProgress::Login(Box::new(login_state)))
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Response::new(OpaqueLoginStartResponse {
session_id,
@@ -408,11 +393,8 @@
let platform_metadata = get_platform_metadata(&request)?;
let message = request.into_inner();
- let Some(WorkflowInProgress::Login(state)) = self
- .client
- .get_workflow(message.session_id)
- .await
- .map_err(handle_db_error)?
+ let Some(WorkflowInProgress::Login(state)) =
+ self.client.get_workflow(message.session_id).await?
else {
return Err(tonic::Status::not_found(
tonic_status_messages::SESSION_NOT_FOUND,
@@ -428,8 +410,7 @@
self
.client
.remove_device(state.user_id.clone(), device_to_remove)
- .await
- .map_err(handle_db_error)?;
+ .await?;
}
let login_time = chrono::Utc::now();
@@ -441,8 +422,7 @@
platform_metadata,
login_time,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
// Create access token
let token = AccessTokenData::with_created_time(
@@ -455,11 +435,7 @@
let access_token = token.access_token.clone();
- self
- .client
- .put_access_token_data(token)
- .await
- .map_err(handle_db_error)?;
+ self.client.put_access_token_data(token).await?;
let response = AuthResponse {
user_id: state.user_id,
@@ -502,8 +478,7 @@
let user_id = if let Some(user_id) = self
.client
.get_user_id_from_user_info(wallet_address.clone(), &AuthType::Wallet)
- .await
- .map_err(handle_db_error)?
+ .await?
{
self
.check_device_id_taken(&flattened_device_key_upload, Some(&user_id))
@@ -517,16 +492,14 @@
platform_metadata,
login_time,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
user_id
} else {
let Some(user_id) = self
.client
.get_user_id_from_reserved_usernames_table(&wallet_address)
- .await
- .map_err(handle_db_error)?
+ .await?
else {
return Err(tonic::Status::not_found(
tonic_status_messages::USER_NOT_FOUND,
@@ -564,8 +537,7 @@
message.farcaster_id,
None,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
user_id
};
@@ -581,11 +553,7 @@
let access_token = token.access_token.clone();
- self
- .client
- .put_access_token_data(token)
- .await
- .map_err(handle_db_error)?;
+ self.client.put_access_token_data(token).await?;
let response = AuthResponse {
user_id,
@@ -617,8 +585,7 @@
let username_in_reserved_usernames_table = self
.client
.get_user_id_from_reserved_usernames_table(&wallet_address)
- .await
- .map_err(handle_db_error)?
+ .await?
.is_some();
if username_in_reserved_usernames_table {
@@ -655,8 +622,7 @@
message.farcaster_id,
initial_device_list,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
// Create access token
let token = AccessTokenData::with_created_time(
@@ -669,11 +635,7 @@
let access_token = token.access_token.clone();
- self
- .client
- .put_access_token_data(token)
- .await
- .map_err(handle_db_error)?;
+ self.client.put_access_token_data(token).await?;
let response = AuthResponse {
user_id,
@@ -790,17 +752,13 @@
let user_identity = self
.client
.get_user_identity(&user_id)
- .await
- .map_err(handle_db_error)?
+ .await?
.ok_or_else(|| {
tonic::Status::not_found(tonic_status_messages::USER_NOT_FOUND)
})?;
- let Some(device_list) = self
- .client
- .get_current_device_list(&user_id)
- .await
- .map_err(handle_db_error)?
+ let Some(device_list) =
+ self.client.get_current_device_list(&user_id).await?
else {
warn!("User {} does not have valid device list. Secondary device auth impossible.", redact_sensitive_data(&user_id));
return Err(tonic::Status::aborted(
@@ -825,11 +783,7 @@
&mut OsRng,
);
let access_token = token.access_token.clone();
- self
- .client
- .put_access_token_data(token)
- .await
- .map_err(handle_db_error)?;
+ self.client.put_access_token_data(token).await?;
self
.client
@@ -839,8 +793,7 @@
platform_metadata,
login_time,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = AuthResponse {
user_id,
@@ -868,20 +821,17 @@
self.client.get_user_identity(&user_id),
self.client.get_current_device_list(&user_id)
);
- let user_identity =
- identity_response.map_err(handle_db_error)?.ok_or_else(|| {
- tonic::Status::not_found(tonic_status_messages::USER_NOT_FOUND)
- })?;
-
- let device_list = device_list_response
- .map_err(handle_db_error)?
- .ok_or_else(|| {
- warn!(
- "User {} does not have a valid device list.",
- redact_sensitive_data(&user_id)
- );
- tonic::Status::aborted(tonic_status_messages::DEVICE_LIST_ERROR)
- })?;
+ let user_identity = identity_response?.ok_or_else(|| {
+ tonic::Status::not_found(tonic_status_messages::USER_NOT_FOUND)
+ })?;
+
+ let device_list = device_list_response?.ok_or_else(|| {
+ warn!(
+ "User {} does not have a valid device list.",
+ redact_sensitive_data(&user_id)
+ );
+ tonic::Status::aborted(tonic_status_messages::DEVICE_LIST_ERROR)
+ })?;
if !device_list.device_ids.contains(&device_id) {
return Err(tonic::Status::permission_denied(
@@ -900,11 +850,7 @@
&mut OsRng,
);
let access_token = token.access_token.clone();
- self
- .client
- .put_access_token_data(token)
- .await
- .map_err(handle_db_error)?;
+ self.client.put_access_token_data(token).await?;
let response = AuthResponse {
user_id,
@@ -920,16 +866,15 @@
_request: tonic::Request<Empty>,
) -> Result<tonic::Response<GenerateNonceResponse>, tonic::Status> {
let nonce_data = generate_nonce_data(&mut OsRng);
- match self
+ self
.client
.add_nonce_to_nonces_table(nonce_data.clone())
- .await
- {
- Ok(_) => Ok(Response::new(GenerateNonceResponse {
- nonce: nonce_data.nonce,
- })),
- Err(e) => Err(handle_db_error(e)),
- }
+ .await?;
+
+ let response = GenerateNonceResponse {
+ nonce: nonce_data.nonce,
+ };
+ Ok(Response::new(response))
}
#[tracing::instrument(skip_all)]
@@ -947,8 +892,7 @@
message.device_id.clone(),
message.access_token,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Response::new(VerifyUserAccessTokenResponse { token_valid });
debug!(
@@ -970,17 +914,13 @@
&message.signature,
)?;
- let filtered_user_details = self
- .client
- .filter_out_taken_usernames(user_details)
- .await
- .map_err(handle_db_error)?;
+ let filtered_user_details =
+ self.client.filter_out_taken_usernames(user_details).await?;
self
.client
.add_usernames_to_reserved_usernames_table(filtered_user_details)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Response::new(Empty {});
Ok(response)
@@ -1001,8 +941,7 @@
self
.client
.delete_username_from_reserved_usernames_table(username)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Response::new(Empty {});
Ok(response)
@@ -1043,10 +982,9 @@
.client
.get_user_id_from_user_info(user_ident.clone(), &auth_type),
);
- let is_reserved = get_user_id_from_reserved_usernames_table_result
- .map_err(handle_db_error)?
- .is_some();
- let user_id = user_id_result.map_err(handle_db_error)?;
+ let is_reserved =
+ get_user_id_from_reserved_usernames_table_result?.is_some();
+ let user_id = user_id_result?;
Ok(Response::new(FindUserIdResponse {
user_id,
@@ -1064,8 +1002,7 @@
let farcaster_users = self
.client
.get_farcaster_users(message.farcaster_ids)
- .await
- .map_err(handle_db_error)?
+ .await?
.into_iter()
.map(|d| d.0)
.collect();
@@ -1079,11 +1016,8 @@
&self,
username: &str,
) -> Result<(), tonic::Status> {
- let username_taken = self
- .client
- .username_taken(username.to_string())
- .await
- .map_err(handle_db_error)?;
+ let username_taken =
+ self.client.username_taken(username.to_string()).await?;
if username_taken {
return Err(tonic::Status::already_exists(
tonic_status_messages::USERNAME_ALREADY_EXISTS,
@@ -1099,8 +1033,7 @@
let wallet_address_taken = self
.client
.wallet_address_taken(wallet_address.to_string())
- .await
- .map_err(handle_db_error)?;
+ .await?;
if wallet_address_taken {
return Err(tonic::Status::already_exists(
tonic_status_messages::WALLET_ADDRESS_TAKEN,
@@ -1116,8 +1049,7 @@
let fid_already_registered = !self
.client
.get_farcaster_users(vec![farcaster_id.to_string()])
- .await
- .map_err(handle_db_error)?
+ .await?
.is_empty();
if fid_already_registered {
return Err(tonic::Status::already_exists(
@@ -1133,11 +1065,8 @@
requesting_user_id: Option<&str>,
) -> Result<(), tonic::Status> {
let device_id = key_upload.device_id_key.as_str();
- let Some(existing_device_user_id) = self
- .client
- .find_user_id_for_device(device_id)
- .await
- .map_err(handle_db_error)?
+ let Some(existing_device_user_id) =
+ self.client.find_user_id_for_device(device_id).await?
else {
// device ID doesn't exist
return Ok(());
@@ -1165,12 +1094,7 @@
&self,
nonce: &str,
) -> Result<(), tonic::Status> {
- match self
- .client
- .get_nonce_from_nonces_table(nonce)
- .await
- .map_err(handle_db_error)?
- {
+ match self.client.get_nonce_from_nonces_table(nonce).await? {
None => {
return Err(tonic::Status::invalid_argument(
tonic_status_messages::INVALID_NONCE,
@@ -1183,11 +1107,12 @@
tonic_status_messages::NONCE_EXPIRED,
));
}
- Some(nonce_data) => self
- .client
- .remove_nonce_from_nonces_table(&nonce_data.nonce)
- .await
- .map_err(handle_db_error)?,
+ Some(nonce_data) => {
+ self
+ .client
+ .remove_nonce_from_nonces_table(&nonce_data.nonce)
+ .await?
+ }
};
Ok(())
}
@@ -1206,8 +1131,7 @@
let maybe_keyserver_device_id = self
.client
.get_keyserver_device_id_for_user(user_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let Some(existing_keyserver_device_id) = maybe_keyserver_device_id else {
return Ok(None);
@@ -1405,8 +1329,7 @@
notif_prekey: message.notif_prekey()?,
notif_prekey_signature: message.notif_prekey_signature()?,
notif_one_time_keys: message.one_time_notif_prekeys()?,
- device_type: DeviceType::try_from(DBDeviceTypeInt(message.device_type()?))
- .map_err(handle_db_error)?,
+ device_type: DeviceType::try_from(DBDeviceTypeInt(message.device_type()?))?,
};
Ok(flattened_device_key_upload)
diff --git a/services/identity/src/grpc_services/authenticated.rs b/services/identity/src/grpc_services/authenticated.rs
--- a/services/identity/src/grpc_services/authenticated.rs
+++ b/services/identity/src/grpc_services/authenticated.rs
@@ -16,7 +16,7 @@
use comm_lib::auth::AuthService;
use comm_opaque2::grpc::protocol_error_to_grpc_status;
use tonic::{Request, Response, Status};
-use tracing::{debug, error, trace, warn};
+use tracing::{debug, error, trace};
use super::protos::auth::{
identity_client_service_server::IdentityClientService,
@@ -67,13 +67,11 @@
// This function cannot be `async`, yet must call the async db call
// Force tokio to resolve future in current thread without an explicit .await
let valid_token = tokio::task::block_in_place(move || {
- handle
- .block_on(new_db_client.verify_access_token(
- user_id,
- device_id,
- access_token,
- ))
- .map_err(handle_db_error)
+ handle.block_on(new_db_client.verify_access_token(
+ user_id,
+ device_id,
+ access_token,
+ ))
})?;
if !valid_token {
@@ -145,8 +143,7 @@
content_key.into(),
notif_key.into(),
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Response::new(Empty {});
Ok(response)
@@ -163,8 +160,7 @@
let devices_map = self
.db_client
.get_keys_for_user(user_id, true)
- .await
- .map_err(handle_db_error)?
+ .await?
.ok_or_else(|| {
tonic::Status::not_found(tonic_status_messages::USER_NOT_FOUND)
})?;
@@ -204,8 +200,7 @@
let identifier = self
.db_client
.get_user_identity(user_id)
- .await
- .map_err(handle_db_error)?
+ .await?
.ok_or_else(|| {
tonic::Status::not_found(tonic_status_messages::USER_NOT_FOUND)
})?;
@@ -226,8 +221,7 @@
let identifier = self
.db_client
.get_user_identity(&message.user_id)
- .await
- .map_err(handle_db_error)?
+ .await?
.ok_or_else(|| {
tonic::Status::not_found(tonic_status_messages::USER_NOT_FOUND)
})?;
@@ -235,8 +229,7 @@
let Some(keyserver_info) = self
.db_client
.get_keyserver_keys_for_user(&message.user_id)
- .await
- .map_err(handle_db_error)?
+ .await?
else {
return Err(Status::not_found(
tonic_status_messages::KEYSERVER_NOT_FOUND,
@@ -246,8 +239,7 @@
let primary_device_data = self
.db_client
.get_primary_device_data(&message.user_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let primary_device_keys = primary_device_data.device_key_info;
let response = Response::new(KeyserverKeysResponse {
@@ -276,8 +268,7 @@
&message.content_one_time_prekeys,
&message.notif_one_time_prekeys,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
Ok(tonic::Response::new(Empty {}))
}
@@ -293,8 +284,7 @@
let Some((username, password_file)) = self
.db_client
.get_username_and_password_file(&user_id)
- .await
- .map_err(handle_db_error)?
+ .await?
else {
return Err(tonic::Status::permission_denied(
tonic_status_messages::WALLET_USER,
@@ -326,8 +316,7 @@
let session_id = self
.db_client
.insert_workflow(WorkflowInProgress::Update(Box::new(update_state)))
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = UpdateUserPasswordStartResponse {
session_id,
@@ -346,11 +335,8 @@
let message = request.into_inner();
- let Some(WorkflowInProgress::Update(state)) = self
- .db_client
- .get_workflow(message.session_id)
- .await
- .map_err(handle_db_error)?
+ let Some(WorkflowInProgress::Update(state)) =
+ self.db_client.get_workflow(message.session_id).await?
else {
return Err(tonic::Status::not_found(
tonic_status_messages::SESSION_NOT_FOUND,
@@ -370,8 +356,7 @@
self
.db_client
.update_user_password(user_id, password_file)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Empty {};
Ok(Response::new(response))
@@ -384,23 +369,17 @@
) -> Result<tonic::Response<Empty>, tonic::Status> {
let (user_id, device_id) = get_user_and_device_id(&request)?;
- self
- .db_client
- .remove_device(&user_id, &device_id)
- .await
- .map_err(handle_db_error)?;
+ self.db_client.remove_device(&user_id, &device_id).await?;
self
.db_client
.delete_otks_table_rows_for_user_device(&user_id, &device_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
self
.db_client
.delete_access_token_data(&user_id, &device_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let device_list = self
.db_client
@@ -485,15 +464,10 @@
// on our own. (Side effect would skip the primary device).
false,
)
- .await
- .map_err(handle_db_error)?;
+ .await?;
debug!(user_id, "Attempting to delete user's access tokens");
- self
- .db_client
- .delete_all_tokens_for_user(&user_id)
- .await
- .map_err(handle_db_error)?;
+ self.db_client.delete_all_tokens_for_user(&user_id).await?;
// We must delete the one-time keys first because doing so requires device
// IDs from the devices table
@@ -501,15 +475,13 @@
self
.db_client
.delete_otks_table_rows_for_user(&user_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
debug!(user_id, "Attempting to delete user's devices");
let device_ids = self
.db_client
.delete_devices_data_for_user(&user_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
spawn_delete_tunnelbroker_data_task(device_ids);
@@ -539,14 +511,12 @@
self
.db_client
.delete_access_token_data(&user_id, &device_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
self
.db_client
.delete_otks_table_rows_for_user_device(&user_id, &device_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
spawn_delete_tunnelbroker_data_task([device_id].into());
@@ -566,8 +536,7 @@
let user_is_password_authenticated = self
.db_client
.user_is_password_authenticated(&user_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
if user_is_password_authenticated {
return Err(tonic::Status::permission_denied(
@@ -575,11 +544,7 @@
));
}
- let device_ids = self
- .db_client
- .delete_user(user_id.clone())
- .await
- .map_err(handle_db_error)?;
+ let device_ids = self.db_client.delete_user(user_id.clone()).await?;
spawn_delete_tunnelbroker_data_task(device_ids);
spawn_delete_backup_data_task(user_id, self.comm_auth_service.clone());
@@ -600,8 +565,7 @@
let maybe_username_and_password_file = self
.db_client
.get_username_and_password_file(&user_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let Some((username, password_file_bytes)) =
maybe_username_and_password_file
@@ -628,8 +592,7 @@
.insert_workflow(WorkflowInProgress::PasswordUserDeletion(Box::new(
delete_state,
)))
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Response::new(DeletePasswordUserStartResponse {
session_id,
@@ -647,11 +610,8 @@
let message = request.into_inner();
debug!("Attempting to finish deleting password user: {}", user_id);
- let Some(WorkflowInProgress::PasswordUserDeletion(state)) = self
- .db_client
- .get_workflow(message.session_id)
- .await
- .map_err(handle_db_error)?
+ let Some(WorkflowInProgress::PasswordUserDeletion(state)) =
+ self.db_client.get_workflow(message.session_id).await?
else {
return Err(tonic::Status::not_found(
tonic_status_messages::SESSION_NOT_FOUND,
@@ -663,11 +623,7 @@
.finish(&message.opaque_login_upload)
.map_err(protocol_error_to_grpc_status)?;
- let device_ids = self
- .db_client
- .delete_user(user_id.clone())
- .await
- .map_err(handle_db_error)?;
+ let device_ids = self.db_client.delete_user(user_id.clone()).await?;
spawn_delete_tunnelbroker_data_task(device_ids);
spawn_delete_backup_data_task(user_id, self.comm_auth_service.clone());
@@ -698,8 +654,7 @@
let mut db_result = self
.db_client
.get_device_list_history(user_id, since)
- .await
- .map_err(handle_db_error)?;
+ .await?;
// these should be sorted already, but just in case
db_result.sort_by_key(|list| list.timestamp);
@@ -734,11 +689,8 @@
);
// 1. Fetch device lists
- let device_lists = self
- .db_client
- .get_current_device_lists(user_ids)
- .await
- .map_err(handle_db_error)?;
+ let device_lists =
+ self.db_client.get_current_device_lists(user_ids).await?;
trace!("Found device lists for {} users", device_lists.keys().len());
// 2. Fetch platform details
@@ -756,8 +708,7 @@
let platform_details = self
.db_client
.get_devices_platform_details(flattened_user_device_ids)
- .await
- .map_err(handle_db_error)?;
+ .await?;
trace!(
"Found platform details for {} users",
platform_details.keys().len()
@@ -808,8 +759,7 @@
self
.db_client
.apply_devicelist_update(&user_id, update, Some(validator), true)
- .await
- .map_err(handle_db_error)?;
+ .await?;
Ok(Response::new(Empty {}))
}
@@ -825,8 +775,7 @@
let mut get_farcaster_users_response = self
.db_client
.get_farcaster_users(vec![message.farcaster_id.clone()])
- .await
- .map_err(handle_db_error)?;
+ .await?;
if get_farcaster_users_response.len() > 1 {
error!(
@@ -849,8 +798,7 @@
self
.db_client
.add_farcaster_id(user_id, message.farcaster_id)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let response = Empty {};
Ok(Response::new(response))
@@ -863,11 +811,7 @@
) -> Result<Response<Empty>, tonic::Status> {
let (user_id, _) = get_user_and_device_id(&request)?;
- self
- .db_client
- .remove_farcaster_id(user_id)
- .await
- .map_err(handle_db_error)?;
+ self.db_client.remove_farcaster_id(user_id).await?;
let response = Empty {};
Ok(Response::new(response))
@@ -884,8 +828,7 @@
let users_table_results = self
.db_client
.find_db_user_identities(user_ids.clone())
- .await
- .map_err(handle_db_error)?;
+ .await?;
// Look up only user IDs that haven't been found in users table
let reserved_user_ids_to_query: Vec<String> = user_ids
@@ -895,8 +838,7 @@
let reserved_user_identifiers = self
.db_client
.query_reserved_usernames_by_user_ids(reserved_user_ids_to_query)
- .await
- .map_err(handle_db_error)?;
+ .await?;
let identities = users_table_results
.into_iter()
@@ -927,8 +869,7 @@
self
.db_client
.update_device_platform_details(user_id, device_id, platform_details)
- .await
- .map_err(handle_db_error)?;
+ .await?;
Ok(Response::new(Empty {}))
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Sep 19, 12:42 PM (2 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2133556
Default Alt Text
D13269.id44137.diff (25 KB)
Attached To
Mode
D13269: [identity] Replace handle_db_error mapping with question mark
Attached
Detach File
Event Timeline
Log In to Comment