chore: refine user and bot creation methods

This commit is contained in:
Paul Makles
2023-08-05 12:06:43 +01:00
parent c9011ac692
commit 9f3c1036d0
6 changed files with 155 additions and 111 deletions

View File

@@ -1,7 +1,8 @@
use crate::util::regex::RE_USERNAME;
use revolt_quark::{
authifier::models::Session, models::User, Database, EmptyResponse, Error, Result,
};
use revolt_database::{Database, User};
use revolt_models::v0;
use revolt_quark::authifier::models::Session;
use revolt_result::{create_error, Result};
use rocket::{serde::json::Json, State};
use serde::{Deserialize, Serialize};
@@ -25,22 +26,22 @@ pub async fn req(
session: Session,
user: Option<User>,
data: Json<DataOnboard>,
) -> Result<EmptyResponse> {
) -> Result<Json<v0::User>> {
if user.is_some() {
return Err(Error::AlreadyOnboarded);
return Err(create_error!(AlreadyOnboarded));
}
let data = data.into_inner();
data.validate()
.map_err(|error| Error::FailedValidation { error })?;
data.validate().map_err(|error| {
create_error!(FailedValidation {
error: error.to_string()
})
})?;
let username = User::validate_username(data.username)?;
let user = User {
id: session.user_id,
discriminator: User::find_discriminator(db, &username, None).await?,
username,
..Default::default()
};
db.insert_user(&user).await.map(|_| EmptyResponse)
Ok(Json(
User::create(db, data.username, session.user_id, None)
.await?
.into_self()
.await,
))
}