From 20cecd1742855eb83f5992ff8d410b76866efec3 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 21 Apr 2026 15:58:45 -0400 Subject: [PATCH] character tokens --- .../artcraft_router/src/errors/client_error.rs | 18 ++++++++++++++++-- .../providers/kinovi/seedance_2p0/draft.rs | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/crates/api_clients/artcraft/artcraft_router/src/errors/client_error.rs b/crates/api_clients/artcraft/artcraft_router/src/errors/client_error.rs index f58a023992..52a3592036 100644 --- a/crates/api_clients/artcraft/artcraft_router/src/errors/client_error.rs +++ b/crates/api_clients/artcraft/artcraft_router/src/errors/client_error.rs @@ -1,5 +1,7 @@ use std::error::Error; use std::fmt::{Display, Formatter}; +use tokens::tokens::characters::CharacterToken; +use tokens::tokens::media_files::MediaFileToken; #[derive(Debug, Clone, Copy)] pub enum ClientType { @@ -48,7 +50,13 @@ pub enum ClientError { MediaFileToUrlMapNotProvided, /// A media file token was not found in the provided media-file-to-URL map. - MediaFileTokenNotFoundInMap { token: String }, + MediaFileTokenNotFoundInMap { token: MediaFileToken }, + + /// The pre-dispatch context of character token to ID map was not supplied. + CharacterTokenToKinoviCharacterIdNotProvided, + + /// A character token was not found in the provided character-token-to-id map + CharacterTokenNotFoundInMap { token: CharacterToken }, } impl Error for ClientError {} @@ -81,7 +89,13 @@ impl Display for ClientError { write!(f, "Media file to URL map was not provided") } Self::MediaFileTokenNotFoundInMap { token } => { - write!(f, "Media file token '{}' was not found in the provided URL map", token) + write!(f, "Media file token '{}' was not found in the provided URL map", token.as_str()) + } + Self::CharacterTokenToKinoviCharacterIdNotProvided => { + write!(f, "Character token to Kinovi character ID map was not provided") + } + Self::CharacterTokenNotFoundInMap { token } => { + write!(f, "Character token '{}' was not found in the provided character-token-to-id map", token.as_str()) } } } diff --git a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_video_v2/providers/kinovi/seedance_2p0/draft.rs b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_video_v2/providers/kinovi/seedance_2p0/draft.rs index ade7281432..ed2d4438e0 100644 --- a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_video_v2/providers/kinovi/seedance_2p0/draft.rs +++ b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_video_v2/providers/kinovi/seedance_2p0/draft.rs @@ -175,7 +175,7 @@ fn resolve_token( let map = maybe_map.ok_or(ArtcraftRouterError::Client(ClientError::MediaFileToUrlMapNotProvided))?; map.get(token).cloned().ok_or_else(|| { ArtcraftRouterError::Client(ClientError::MediaFileTokenNotFoundInMap { - token: token.as_str().to_string(), + token: token.clone(), }) }) }