pub async fn set_username(
self: Arc<Self>,
email: String,
username: String,
) -> Result<(), String> {
validation::is_username_valid(&username)?;
if let Err(e) = self.is_username_available(&username).await {
if let Some(s) = e.get_custom::<&str>() {
return Err(s.to_string());
}
return Err(e.to_string());
}
let metadata: crate::models::user::UnregisteredEntry;
let user_email: String;
let mut guard = self.unregistered.lock().unwrap();
let entry = guard.entry(email);
if let Entry::Occupied(v) = entry {
if v.get().register_status != RegisterStatus::PasswordSet {
return Err("User password not set".to_string());
}
(user_email, metadata) = v.remove_entry();
} else {
return Err("User not found".to_string());
}
drop(guard);
self.add_user(&crate::models::user::User {
_id: ObjectId::new(),
legal_name: metadata.name.clone(),
email: user_email,
dob: metadata.dob,
password: metadata.password.unwrap(),
username,
display_name: metadata.name,
bio: None,
gender: None,
phone: None,
country: None,
// created: DateTime::now(),
// last_login: DateTime::now(),
})
.await // <------------------------------------------------- error over here
.map_err(|e| e.to_string())?;
Ok(())
}
pub async fn add_user(self: Arc<Self>, user: &User) -> mongodb::error::Result<()> {
match self.users.insert_one(user).await {
Ok(v) => {
tracing::info!("Inserted User: {}", v.inserted_id);
Ok(())
}
Err(e) => Err(e),
}
}
#axum cannot implement `Send` for a await point
3 messages · Page 1 of 1 (latest)
Error code:
6e4038e312f942b6ad560f5fd951d70c
Internal error occurred
For support, please send the error code above in #bug-reports-and-errors on the support server (click to join) with a description of what you were doing at the time.
6e4038e312f942b6ad560f5fd951d70c
·
-errors