Добавлена OpenAPI документация эндпоинтов и структур с интерфейсом RapiDoc.

Добавлены derive макросы для преобразования структуры в HttpResponse с помощью ResponderJson и IResponse<T> с помощью IntoIResponse.

Ревью кода эндпоинтов связанных с авторизацией.

Эндпоинт users/me теперь объект пользователя в требуемом виде.
This commit is contained in:
2025-03-28 01:21:49 +04:00
parent 1add903f36
commit 70a7480ea3
9 changed files with 398 additions and 170 deletions

View File

@@ -1,7 +1,17 @@
use actix_macros::ResponderJson;
use diesel::prelude::*;
use serde::{Deserialize, Serialize};
#[derive(diesel_derive_enum::DbEnum, Serialize, Deserialize, Debug, Clone, Copy, PartialEq)]
#[derive(
diesel_derive_enum::DbEnum,
Serialize,
Deserialize,
Debug,
Clone,
Copy,
PartialEq,
utoipa::ToSchema,
)]
#[ExistingTypePath = "crate::database::schema::sql_types::UserRole"]
#[DbValueStyle = "UPPERCASE"]
#[serde(rename_all = "UPPERCASE")]
@@ -11,7 +21,17 @@ pub enum UserRole {
Admin,
}
#[derive(Identifiable, AsChangeset, Queryable, Selectable, Serialize, Insertable, Debug)]
#[derive(
Identifiable,
AsChangeset,
Queryable,
Selectable,
Serialize,
Insertable,
Debug,
utoipa::ToSchema,
ResponderJson,
)]
#[diesel(table_name = crate::database::schema::users)]
#[diesel(treat_none_as_null = true)]
pub struct User {
@@ -23,4 +43,4 @@ pub struct User {
pub group: String,
pub role: UserRole,
pub version: String,
}
}