From 5bbc1acd277bab2e435bb135d4baa46cd976ec6b Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 11 Jun 2026 13:03:14 -0400 Subject: [PATCH] Adding code for endpoint --- src/callers/register.rs | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/callers/register.rs b/src/callers/register.rs index a16df74..60389eb 100644 --- a/src/callers/register.rs +++ b/src/callers/register.rs @@ -18,6 +18,26 @@ pub mod request { #[serde(skip_serializing_if = "Option::is_none")] pub lastname: Option, } + + #[derive(Default, Deserialize, Serialize, utoipa::ToSchema)] + pub struct RegisterServiceUserRequest { + pub username: String, + pub passphrase: String, + } + + impl RegisterServiceUserRequest { + pub fn is_empty(&self) -> (bool, Option) { + 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, } + + #[derive(Default, Deserialize, Serialize, utoipa::ToSchema)] + pub struct RegisterServiceUserResponse { + pub message: String, + pub data: Vec + } } /// Endpoint to register a user @@ -160,3 +186,27 @@ async fn is_registration_enabled() -> Result { )) } } + +/// Endpoint to register a service user +pub async fn register_service_user( + axum::Extension(pool): axum::Extension, + Json(payload): Json, + ) -> (axum::http::StatusCode, axum::Json) { + 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)) + } +}