diff --git a/src/apis/list_admins.rs b/src/apis/list_admins.rs index 746f9c6..2808f3a 100644 --- a/src/apis/list_admins.rs +++ b/src/apis/list_admins.rs @@ -1,7 +1,7 @@ use crate::DbConn; -use crate::apis::invite_code_admin_to_response; +use crate::apis::invite_code_admin_to_summary; use crate::error::AppError; -use crate::user::{InviteCodeAdmin, InviteCodeAdminData}; +use crate::user::{InviteCodeAdmin, InviteCodeAdminSummary}; use axum::extract::State; use axum::{Json, response::IntoResponse}; use diesel::{QueryDsl, RunQueryDsl, SelectableHelper}; @@ -11,7 +11,7 @@ use utoipa::ToSchema; #[derive(Serialize, Deserialize, ToSchema)] pub struct ListAdminsResponse { pub status: String, - pub admins: Vec, + pub admins: Vec, } #[tracing::instrument(skip(db_pool, _user))] @@ -50,8 +50,8 @@ pub async fn list_admins_handler( .map_err(|e| AppError::DatabaseError(e.to_string()))? .map_err(|e| AppError::DatabaseError(e.to_string()))?; - let admins_data: Vec = - results.iter().map(invite_code_admin_to_response).collect(); + let admins_data: Vec = + results.iter().map(invite_code_admin_to_summary).collect(); let response = ListAdminsResponse { status: "success".to_string(), diff --git a/src/apis/mod.rs b/src/apis/mod.rs index b7e9cc9..01c72b3 100644 --- a/src/apis/mod.rs +++ b/src/apis/mod.rs @@ -1,4 +1,4 @@ -use crate::user::{InviteCodeAdmin, InviteCodeAdminData}; +use crate::user::{InviteCodeAdmin, InviteCodeAdminData, InviteCodeAdminSummary}; use serde::{Deserialize, Serialize}; use utoipa::ToSchema; @@ -78,3 +78,11 @@ pub fn invite_code_admin_to_response(user: &InviteCodeAdmin) -> InviteCodeAdminD otp_verified: user.otp_verified.eq(&1), } } + +pub fn invite_code_admin_to_summary(user: &InviteCodeAdmin) -> InviteCodeAdminSummary { + InviteCodeAdminSummary { + username: user.username.to_owned(), + otp_enabled: user.otp_enabled.eq(&1), + otp_verified: user.otp_verified.eq(&1), + } +} diff --git a/src/main.rs b/src/main.rs index 3b0865e..36f8711 100644 --- a/src/main.rs +++ b/src/main.rs @@ -47,6 +47,7 @@ use utoipa_swagger_ui::SwaggerUi; schemas( invite_code_manager::LoginUser, invite_code_manager::user::InviteCodeAdminData, + invite_code_manager::user::InviteCodeAdminSummary, invite_code_manager::user::VerifyOTPSchema, invite_code_manager::user::CreateInviteCodeSchema, invite_code_manager::user::IssueInviteCodeSchema, diff --git a/src/user.rs b/src/user.rs index 703cfb5..16a8000 100644 --- a/src/user.rs +++ b/src/user.rs @@ -125,6 +125,13 @@ pub struct InviteCodeAdminData { pub otp_auth_url: Option, } +#[derive(Serialize, Deserialize, Debug, ToSchema)] +pub struct InviteCodeAdminSummary { + pub username: String, + pub otp_enabled: bool, + pub otp_verified: bool, +} + #[derive(Serialize, Deserialize, ToSchema)] pub struct CreateInviteCodeSchema { #[serde(rename = "codeCount")]