ef0b83a
use crate::share::errors::GitError;
#[derive(Clone, Debug)]
pub struct GitIdentity {
pub name: String,
pub email: String,
}
pub async fn load_identity(state: &export::AppState, uid: i64) -> Result<GitIdentity, GitError> {
let user = export::users::get_public_user(state, uid)
.await?
.ok_or(GitError::NotFound)?;
if user.email.trim().is_empty() || !user.email_verified {
return Err(GitError::InvalidArgument(
"no active primary email".to_string(),
));
}
let name = if user.displayname.trim().is_empty() {
user.username.clone()
} else {
user.displayname.clone()
};
Ok(GitIdentity {
name,
email: user.email,
})
}