Files
ox_speak_server_v2/src/interfaces/http/dto/user.rs
2026-03-02 01:36:28 +01:00

44 lines
950 B
Rust

use crate::models::user;
use sea_orm::Set;
use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
use uuid::Uuid;
#[derive(Debug, Serialize, ToSchema)]
pub struct UserResponse {
pub id: Uuid,
pub username: String,
pub pub_key: String,
}
impl From<user::Model> for UserResponse {
fn from(model: user::Model) -> Self {
Self {
id: model.id,
username: model.username,
pub_key: model.pub_key,
}
}
}
#[derive(Debug, Deserialize, ToSchema)]
pub struct CreateUserRequest {
pub username: String,
}
impl From<CreateUserRequest> for user::ActiveModel {
fn from(request: CreateUserRequest) -> Self {
Self {
username: Set(request.username),
..Default::default()
}
}
}
impl CreateUserRequest {
pub fn apply_to(self, mut am: user::ActiveModel) -> user::ActiveModel {
am.username = Set(self.username);
am
}
}