Register service user endpoint #5

Merged
phoenix merged 12 commits from register_service_user into main 2026-06-11 14:36:10 -04:00
Showing only changes of commit 5bbc1acd27 - Show all commits
+50
View File
@@ -18,6 +18,26 @@ pub mod request {
#[serde(skip_serializing_if = "Option::is_none")]
pub lastname: Option<String>,
}
#[derive(Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct RegisterServiceUserRequest {
pub username: String,
pub passphrase: String,
}
impl RegisterServiceUserRequest {
pub fn is_empty(&self) -> (bool, Option<String>) {
if self.username.is_empty() && self.passphrase.is_empty() {
(true, Some(String::from("Username and Passphrase are empty")))
} else if self.username.is_empty() {
(true, Some(String::from("Username is empty")))
} else if self.passphrase.is_empty() {
(true, Some(String::from("Passphrase is empty")))
} else {
(false, None)
}
}
}
}
pub mod response {
@@ -28,6 +48,12 @@ pub mod response {
pub message: String,
pub data: Vec<textsender_models::user::User>,
}
#[derive(Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct RegisterServiceUserResponse {
pub message: String,
pub data: Vec<textsender_models::user::ServiceUser>
}
}
/// Endpoint to register a user
@@ -160,3 +186,27 @@ async fn is_registration_enabled() -> Result<bool, std::io::Error> {
))
}
}
/// Endpoint to register a service user
pub async fn register_service_user(
axum::Extension(pool): axum::Extension<sqlx::PgPool>,
Json(payload): Json<request::RegisterServiceUserRequest>,
) -> (axum::http::StatusCode, axum::Json<response::RegisterServiceUserResponse>) {
let mut resp = response::RegisterServiceUserResponse {
..Default::default()
};
let (res, msg) = payload.is_empty();
if res {
resp.message = msg.unwrap();
(axum::http::StatusCode::BAD_REQUEST, axum::Json(resp))
} else {
match repo::salt::get_with_username(&pool, &payload.username) {
Ok(service_user) => {
}
Err(err) => {
}
}
(axum::http::StatusCode::NOT_IMPLEMENTED, axum::Json(resp))
}
}