mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 17:38:10 +00:00
doc, split types
This commit is contained in:
1 parent
646ef895b3
commit
fcfc8bf485
7 files changed
+68
-35
No files matched your search
@@ -1,7 +1,8 @@
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use utoipa::ToSchema;
|
||||
|
||||
use crate::characters::shared::CharacterDetails;
|
||||
use crate::common::responses::media_links::MediaLinks;
|
||||
use enums::common::generation::common_model_type::CommonModelType;
|
||||
use tokens::tokens::characters::CharacterToken;
|
||||
|
||||
/// Path parameters for getting a character.
|
||||
@@ -14,5 +15,22 @@ pub struct GetCharacterPathInfo {
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct GetCharacterResponse {
|
||||
pub success: bool,
|
||||
pub character: CharacterDetails,
|
||||
pub character: GetCharacterDetails,
|
||||
}
|
||||
|
||||
/// Full character details returned by the get endpoint.
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct GetCharacterDetails {
|
||||
pub token: CharacterToken,
|
||||
|
||||
/// Which models this character can be used with.
|
||||
pub models: Vec<CommonModelType>,
|
||||
|
||||
pub name: String,
|
||||
|
||||
pub maybe_description: Option<String>,
|
||||
|
||||
pub maybe_avatar: Option<MediaLinks>,
|
||||
|
||||
pub maybe_full_image: Option<MediaLinks>,
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use utoipa::{IntoParams, ToSchema};
|
||||
|
||||
use crate::characters::shared::CharacterDetails;
|
||||
use crate::common::responses::media_links::MediaLinks;
|
||||
use enums::common::generation::common_model_type::CommonModelType;
|
||||
use tokens::tokens::characters::CharacterToken;
|
||||
|
||||
/// Query string parameters for listing characters.
|
||||
#[derive(Deserialize, IntoParams)]
|
||||
@@ -14,6 +16,23 @@ pub struct ListCharactersQuery {
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ListCharactersResponse {
|
||||
pub success: bool,
|
||||
pub characters: Vec<CharacterDetails>,
|
||||
pub characters: Vec<ListCharactersEntry>,
|
||||
pub next_cursor: Option<u64>,
|
||||
}
|
||||
|
||||
/// A character entry in the list response.
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ListCharactersEntry {
|
||||
pub token: CharacterToken,
|
||||
|
||||
/// Which models this character can be used with.
|
||||
pub models: Vec<CommonModelType>,
|
||||
|
||||
pub name: String,
|
||||
|
||||
pub maybe_description: Option<String>,
|
||||
|
||||
pub maybe_avatar: Option<MediaLinks>,
|
||||
|
||||
pub maybe_full_image: Option<MediaLinks>,
|
||||
}
|
||||
@@ -3,4 +3,3 @@ pub mod delete_character;
|
||||
pub mod edit_character;
|
||||
pub mod get_character;
|
||||
pub mod list_characters;
|
||||
pub mod shared;
|
||||
@@ -1,23 +0,0 @@
|
||||
use serde_derive::Serialize;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
use crate::common::responses::media_links::MediaLinks;
|
||||
use enums::common::generation::common_model_type::CommonModelType;
|
||||
use tokens::tokens::characters::CharacterToken;
|
||||
|
||||
/// Character summary used in list and get responses.
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct CharacterDetails {
|
||||
pub token: CharacterToken,
|
||||
|
||||
/// Which models this character can be used with.
|
||||
pub models: Vec<CommonModelType>,
|
||||
|
||||
pub name: String,
|
||||
|
||||
pub maybe_description: Option<String>,
|
||||
|
||||
pub maybe_avatar: Option<MediaLinks>,
|
||||
|
||||
pub maybe_full_image: Option<MediaLinks>,
|
||||
}
|
||||
@@ -279,6 +279,11 @@ use artcraft_api_defs::subscriptions::get_session_subscription::*;
|
||||
use artcraft_api_defs::media_file::list_batch_generated_media_files::*;
|
||||
// Handler modules with locally-defined types
|
||||
use crate::http_server::endpoints::moderation::info::moderator_token_info_handler::*;
|
||||
use artcraft_api_defs::characters::create_character::*;
|
||||
use artcraft_api_defs::characters::delete_character::*;
|
||||
use artcraft_api_defs::characters::edit_character::*;
|
||||
use artcraft_api_defs::characters::get_character::*;
|
||||
use artcraft_api_defs::characters::list_characters::*;
|
||||
use artcraft_api_defs::moderation::alerts::moderation_send_alert::*;
|
||||
use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_image_cost_and_generate_request::*;
|
||||
use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_video_cost_and_generate_request::*;
|
||||
@@ -476,6 +481,12 @@ use crate::http_server::endpoints::media_files::list::list_batch_generated_redux
|
||||
crate::http_server::endpoints::voice_conversion::enqueue_seed_vc_inference_handler::enqueue_infer_seed_vc_handler,
|
||||
// TTS
|
||||
crate::http_server::endpoints::tts::enqueue_infer_f5_tts_handler::enqueue_infer_f5_tts_handler::enqueue_infer_f5_tts_handler,
|
||||
// Characters
|
||||
crate::http_server::endpoints::characters::list_characters_handler::list_characters_handler,
|
||||
crate::http_server::endpoints::characters::create_character_handler::create_character_handler,
|
||||
crate::http_server::endpoints::characters::get_character_handler::get_character_handler,
|
||||
crate::http_server::endpoints::characters::edit_character_handler::edit_character_handler,
|
||||
crate::http_server::endpoints::characters::delete_character_handler::delete_character_handler,
|
||||
// Omni Gen
|
||||
crate::http_server::endpoints::omni_gen::cost::image::omni_gen_image_cost_handler::omni_gen_image_cost_handler,
|
||||
crate::http_server::endpoints::omni_gen::cost::video::omni_gen_video_cost_handler::omni_gen_video_cost_handler,
|
||||
@@ -693,6 +704,17 @@ use crate::http_server::endpoints::media_files::list::list_batch_generated_redux
|
||||
ModeratorUserLookupRequest,
|
||||
ModeratorUserLookupSuccessResponse,
|
||||
ModeratorUserLookupUserDetails,
|
||||
CreateCharacterRequest,
|
||||
CreateCharacterResponse,
|
||||
DeleteCharacterPathInfo,
|
||||
DeleteCharacterResponse,
|
||||
EditCharacterRequest,
|
||||
EditCharacterResponse,
|
||||
GetCharacterDetails,
|
||||
GetCharacterPathInfo,
|
||||
GetCharacterResponse,
|
||||
ListCharactersEntry,
|
||||
ListCharactersResponse,
|
||||
OmniGenImageCostAndGenerateRequest,
|
||||
OmniGenImageCostResponse,
|
||||
OmniGenImageGenerateResponse,
|
||||
|
||||
+2
-3
@@ -3,8 +3,7 @@ use std::sync::Arc;
|
||||
use actix_web::web::{Json, Path};
|
||||
use actix_web::{web, HttpRequest};
|
||||
|
||||
use artcraft_api_defs::characters::get_character::{GetCharacterPathInfo, GetCharacterResponse};
|
||||
use artcraft_api_defs::characters::shared::CharacterDetails;
|
||||
use artcraft_api_defs::characters::get_character::{GetCharacterDetails, GetCharacterPathInfo, GetCharacterResponse};
|
||||
use enums::common::generation::common_model_type::CommonModelType;
|
||||
use tokens::tokens::characters::CharacterToken;
|
||||
|
||||
@@ -31,7 +30,7 @@ pub async fn get_character_handler(
|
||||
_server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<GetCharacterResponse>, CommonWebError> {
|
||||
// TODO: Replace with real implementation.
|
||||
let mock_character = CharacterDetails {
|
||||
let mock_character = GetCharacterDetails {
|
||||
token: path.character_token.clone(),
|
||||
models: vec![CommonModelType::Seedance2p0],
|
||||
name: "Mock Character".to_string(),
|
||||
|
||||
+3
-4
@@ -3,8 +3,7 @@ use std::sync::Arc;
|
||||
use actix_web::web::{Json, Query};
|
||||
use actix_web::{web, HttpRequest};
|
||||
|
||||
use artcraft_api_defs::characters::list_characters::{ListCharactersQuery, ListCharactersResponse};
|
||||
use artcraft_api_defs::characters::shared::CharacterDetails;
|
||||
use artcraft_api_defs::characters::list_characters::{ListCharactersEntry, ListCharactersQuery, ListCharactersResponse};
|
||||
use enums::common::generation::common_model_type::CommonModelType;
|
||||
use tokens::tokens::characters::CharacterToken;
|
||||
|
||||
@@ -30,7 +29,7 @@ pub async fn list_characters_handler(
|
||||
) -> Result<Json<ListCharactersResponse>, CommonWebError> {
|
||||
// TODO: Replace with real implementation.
|
||||
let mock_characters = vec![
|
||||
CharacterDetails {
|
||||
ListCharactersEntry {
|
||||
token: CharacterToken::new_from_str("character_mock_abc123"),
|
||||
models: vec![CommonModelType::Seedance2p0],
|
||||
name: "Juno".to_string(),
|
||||
@@ -38,7 +37,7 @@ pub async fn list_characters_handler(
|
||||
maybe_avatar: None,
|
||||
maybe_full_image: None,
|
||||
},
|
||||
CharacterDetails {
|
||||
ListCharactersEntry {
|
||||
token: CharacterToken::new_from_str("character_mock_def456"),
|
||||
models: vec![CommonModelType::Seedance2p0],
|
||||
name: "Ernest".to_string(),
|
||||
|
||||
Reference in new issue
Block a user