diff --git a/crates/service/web/storyteller_web/src/billing/wallets/attempt_wallet_deduction.rs b/crates/service/web/storyteller_web/src/billing/wallets/attempt_wallet_deduction.rs index cb2672a2ff..45d036439f 100644 --- a/crates/service/web/storyteller_web/src/billing/wallets/attempt_wallet_deduction.rs +++ b/crates/service/web/storyteller_web/src/billing/wallets/attempt_wallet_deduction.rs @@ -1,4 +1,4 @@ -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use enums::common::payments_namespace::PaymentsNamespace; use errors::AnyhowResult; use log::{error, info}; @@ -22,7 +22,7 @@ pub async fn attempt_wallet_deduction_else_common_web_error( maybe_reference_token: Option<&str>, amount_to_deduct: u64, connection: &mut PoolConnection -) -> Result { +) -> Result { let result = try_wallet_deduction( user_token, @@ -37,23 +37,23 @@ pub async fn attempt_wallet_deduction_else_common_web_error( Err(err) => Err(match err { WalletSpendError::InvalidAmountToSpend => { log::error!("invalid spend amount charged"); - CommonWebError::PaymentRequired + AdvancedCommonWebError::PaymentRequired } WalletSpendError::InsufficientBalance { requested_to_spend_amount, available_amount } => { log::error!("payment is required - requested: {}, available: {}", requested_to_spend_amount, available_amount); - CommonWebError::PaymentRequired + AdvancedCommonWebError::PaymentRequired } WalletSpendError::SelectError(err) => { log::error!("SQL error (select) in attempt_wallet_deduction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") } WalletSpendError::SelectOptionalError(err) => { log::error!("SQL error (select optional) in attempt_wallet_deduction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") } WalletSpendError::SqlxError(err) => { log::error!("SQL error (sqlx) in attempt_wallet_deduction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") } }), } diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/advanced_common_web_error.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/advanced_common_web_error.rs index cb5aec0fdc..28f71c72c1 100644 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/advanced_common_web_error.rs +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/advanced_common_web_error.rs @@ -1,7 +1,6 @@ use std::fmt::{Display, Formatter}; use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::http_server::session::session_checker_error::SessionCheckerError; use crate::http_server::web_utils::user_session::require_user_session::RequireUserSessionError; use actix_artcraft::sessions::anonymous_visitor_tracking::avt_cookie_payload_error::AvtCookiePayloadError; @@ -9,6 +8,7 @@ use actix_artcraft::sessions::user_sessions::http_user_session_payload_error::Ht use actix_http::StatusCode; use actix_web::{HttpResponse, HttpResponseBuilder, ResponseError}; use anyhow::anyhow; +use mysql_queries::errors::mysql_error::{MysqlCrateErrorSubtype, MysqlError}; /// An error type for actix-web handlers that wraps causal errors for debugging /// and paging while presenting safe, generic HTTP responses to users. @@ -241,6 +241,15 @@ impl From for AdvancedCommonWebError { } } +impl From> for AdvancedCommonWebError +where + T: MysqlCrateErrorSubtype + Send + Sync + 'static, +{ + fn from(err: MysqlError) -> Self { + Self::from_error(err) + } +} + impl From for AdvancedCommonWebError { fn from(err: anyhow::Error) -> Self { // anyhow::Error doesn't impl std::error::Error, so we go through Box -> Arc. @@ -299,18 +308,6 @@ impl From for AdvancedCommonWebError { } } -impl From for AdvancedCommonWebError { - fn from(value: CommonWebError) -> Self { - match value { - CommonWebError::BadInputWithSimpleMessage(msg) => Self::BadInputWithSimpleMessage(msg), - CommonWebError::NotAuthorized => Self::NotAuthorized, - CommonWebError::NotFound => Self::NotFound, - CommonWebError::PaymentRequired => Self::PaymentRequired, - CommonWebError::ServerError => Self::from_error(value), - } - } -} - // =============== Serialization helpers (private) =============== #[derive(Debug, Serialize)] diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/common_web_error.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/common_web_error.rs deleted file mode 100644 index cb1386291b..0000000000 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/common_web_error.rs +++ /dev/null @@ -1,147 +0,0 @@ -use actix_http::StatusCode; -use actix_web::{HttpResponse, HttpResponseBuilder, ResponseError}; -use log::{error, warn}; -use mysql_queries::errors::mysql_error::{MysqlCrateErrorSubtype, MysqlError}; -use std::error::Error; -use std::fmt::{Display, Formatter}; -use crate::http_server::session::session_checker_error::SessionCheckerError; -use crate::http_server::web_utils::user_session::require_user_session::RequireUserSessionError; - -#[derive(Debug, utoipa::ToSchema)] -pub enum CommonWebError { - // TODO: Bad input with error fields vector. - /// Bad input with a user-facing error message. - BadInputWithSimpleMessage(String), - /// Entity not found. - NotFound, - /// Not authorized to perform the action. - NotAuthorized, - /// Server error with no reason. - ServerError, - /// Payment required with no extra info - PaymentRequired, -} - -impl Error for CommonWebError {} - -impl Display for CommonWebError { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self) - } -} - -#[derive(Debug, Serialize)] -struct SerializeSimpleErrorWithoutMessage<'a> { - success: bool, - error_code: u16, - error_code_str: Option<&'a str>, -} - - -#[derive(Debug, Serialize)] -struct SerializeSimpleErrorWithMessage<'a> { - success: bool, - error_code: u16, - error_code_str: Option<&'a str>, - message: &'a str, -} - -impl ResponseError for CommonWebError { - fn status_code(&self) -> StatusCode { - match self { - CommonWebError::BadInputWithSimpleMessage(_) => StatusCode::BAD_REQUEST, - CommonWebError::NotFound => StatusCode::NOT_FOUND, - CommonWebError::NotAuthorized => StatusCode::UNAUTHORIZED, - CommonWebError::ServerError => StatusCode::INTERNAL_SERVER_ERROR, - CommonWebError::PaymentRequired => StatusCode::PAYMENT_REQUIRED, - } - } - - fn error_response(&self) -> HttpResponse { - match self { - CommonWebError::BadInputWithSimpleMessage(msg) => { - HttpResponse::BadRequest() - .json(SerializeSimpleErrorWithMessage { - success: false, - error_code: self.status_code().as_u16(), - error_code_str: self.status_code().canonical_reason(), - message: msg, - }) - }, - _ => { - HttpResponseBuilder::new(self.status_code()) - .json(SerializeSimpleErrorWithoutMessage { - success: false, - error_code: self.status_code().as_u16(), - error_code_str: self.status_code().canonical_reason(), - }) - } - } - } -} - -impl From for CommonWebError { - fn from(value: sqlx::Error) -> Self { - error!("SQLx error: {:?}", value); - CommonWebError::ServerError - } -} - -impl From for CommonWebError { - fn from(value: anyhow::Error) -> Self { - error!("Uncaught anyhow::Error being coerced to CommonWebError : {:?}", value); - CommonWebError::ServerError - } -} - -impl From> for CommonWebError { - fn from(value: MysqlError) -> Self { - error!("MysqlError being coerced to CommonWebError : {:?}", value); - CommonWebError::ServerError - } -} - -impl From for CommonWebError { - fn from(value: RequireUserSessionError) -> Self { - match value { - RequireUserSessionError::NotAuthorized => Self::NotAuthorized, - RequireUserSessionError::ServerError => Self::ServerError, - } - } -} - -impl From for CommonWebError { - fn from(value: SessionCheckerError) -> Self { - match value { - // Bad / forged session cookie → 401 - // NOTE: If there's an elevated rate of across-the-board 401s, - // then we probably misconfigured the HMAC secret - SessionCheckerError::SessionPayload(_) => Self::NotAuthorized, - // Underlying DB / cache errors → 500 - SessionCheckerError::Sqlx(err) => { - error!("SessionChecker sqlx error: {:?}", err); - Self::ServerError - }, - // Likely Redis caching middleware - SessionCheckerError::OtherError(err) => { - error!("SessionChecker other error: {:?}", err); - Self::ServerError - }, - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use actix_http::body::MessageBody; - - #[test] - fn test_bad_input_json() { - let error = CommonWebError::BadInputWithSimpleMessage("foo bar baz".to_string()); - let response = error.error_response(); - let bytes = response.into_body().try_into_bytes().unwrap(); - let body = String::from_utf8(bytes.to_vec()).unwrap(); - assert_eq!(body, "{\"success\":false,\"error_code\":400,\"error_code_str\":\"Bad Request\",\"message\":\"foo bar baz\"}"); - } -} \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/mod.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/mod.rs index 51ed3f0c6a..742b62af90 100644 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/mod.rs +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/mod.rs @@ -1,5 +1,4 @@ pub mod advanced_common_web_error; -pub mod common_web_error; pub mod media; pub mod media_file_origin_details; pub mod media_file_social_meta_lite; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoint_helpers/refund_wallet_after_api_failure.rs b/crates/service/web/storyteller_web/src/http_server/endpoint_helpers/refund_wallet_after_api_failure.rs index 9e73e00fc7..06cffd7a15 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoint_helpers/refund_wallet_after_api_failure.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoint_helpers/refund_wallet_after_api_failure.rs @@ -1,4 +1,4 @@ -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use log::{error, info}; use mysql_queries::queries::wallets::refund::try_to_refund_ledger_entry::{try_to_refund_ledger_entry, WalletRefundOutcome}; use sqlx::Acquire; @@ -7,13 +7,13 @@ use tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken; pub async fn refund_wallet_after_api_failure( ledger_entry_token: &WalletLedgerEntryToken, connection: &mut sqlx::pool::PoolConnection, -) -> Result<(), CommonWebError> { +) -> Result<(), AdvancedCommonWebError> { let mut transaction = connection.begin().await.map_err(|err| { error!( "Failed to begin refund transaction after API failure (ledger {}): {:?}", ledger_entry_token.as_str(), err ); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; match try_to_refund_ledger_entry(ledger_entry_token, &mut transaction).await { @@ -29,7 +29,7 @@ pub async fn refund_wallet_after_api_failure( "Failed to commit refund after API failure (ledger {}): {:?}", ledger_entry_token.as_str(), err ); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } Ok(WalletRefundOutcome::AlreadyRefunded) => { @@ -45,7 +45,7 @@ pub async fn refund_wallet_after_api_failure( ledger_entry_token.as_str(), err ); let _ = transaction.rollback().await; - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_handler.rs index ce6ccc1598..7776124fc1 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::state::server_state::ServerState; use actix_helpers::extractors::get_request_user_agent::get_request_user_agent; use actix_web::web::{Json, Query}; @@ -33,7 +33,7 @@ pub async fn log_app_active_user_handler( http_request: HttpRequest, request: Query, server_state: web::Data>, -) -> Result, CommonWebError> +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() @@ -45,7 +45,7 @@ pub async fn log_app_active_user_handler( .await?; let user_token = maybe_user_session - .ok_or(CommonWebError::NotAuthorized)? + .ok_or(AdvancedCommonWebError::NotAuthorized)? .user_token; let ip_address = get_request_ip(&http_request); @@ -143,10 +143,10 @@ pub async fn log_app_active_user_handler( })) } -fn validate_app_session_token_format(app_session_token: &AppSessionToken) -> Result<(), CommonWebError> { +fn validate_app_session_token_format(app_session_token: &AppSessionToken) -> Result<(), AdvancedCommonWebError> { if !app_session_token.as_str().starts_with(AppSessionToken::token_prefix()) { warn!("App session token has invalid prefix: {}", app_session_token.as_str()); - return Err(CommonWebError::BadInputWithSimpleMessage("Invalid app session token format".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Invalid app session token format".to_string())); } Ok(()) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_json_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_json_handler.rs index 1c885da0f2..3c9387d500 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_json_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_app_active_user_json_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::state::server_state::ServerState; use actix_helpers::extractors::get_request_user_agent::get_request_user_agent; use actix_web::web::Json; @@ -29,7 +29,7 @@ pub async fn log_app_active_user_json_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() @@ -41,7 +41,7 @@ pub async fn log_app_active_user_json_handler( .await?; let user_token = maybe_user_session - .ok_or(CommonWebError::NotAuthorized)? + .ok_or(AdvancedCommonWebError::NotAuthorized)? .user_token; let ip_address = get_request_ip(&http_request); @@ -139,10 +139,10 @@ pub async fn log_app_active_user_json_handler( })) } -fn validate_app_session_token_format(app_session_token: &AppSessionToken) -> Result<(), CommonWebError> { +fn validate_app_session_token_format(app_session_token: &AppSessionToken) -> Result<(), AdvancedCommonWebError> { if !app_session_token.as_str().starts_with(AppSessionToken::token_prefix()) { warn!("App session token has invalid prefix: {}", app_session_token.as_str()); - return Err(CommonWebError::BadInputWithSimpleMessage("Invalid app session token format".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Invalid app session token format".to_string())); } Ok(()) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/credits/get_session_credits_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/credits/get_session_credits_handler.rs index ac01e43d83..590e172cb6 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/credits/get_session_credits_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/credits/get_session_credits_handler.rs @@ -1,7 +1,7 @@ use std::fmt; use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::state::server_state::ServerState; use actix_web::web::{Json, Path}; @@ -38,14 +38,14 @@ pub async fn get_session_credits_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result, CommonWebError> +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await .map_err(|err| { error!("Error acquiring MySQL connection: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_user_session = server_state @@ -54,12 +54,12 @@ pub async fn get_session_credits_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let user_token = match maybe_user_session { Some(session) => session.user_token, - None => return Err(CommonWebError::NotAuthorized), + None => return Err(AdvancedCommonWebError::NotAuthorized), }; let maybe_wallet = find_primary_wallet_for_owner_using_connection( @@ -68,7 +68,7 @@ pub async fn get_session_credits_handler( &mut mysql_connection, ).await.map_err(|err| { error!("Error finding primary wallet for user: {:?}, error: {:?}", user_token, err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let free_credits = 0u64; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/payments_error_test.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/payments_error_test.rs index 348e36ae72..c854a6d3b2 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/payments_error_test.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/payments_error_test.rs @@ -1,10 +1,10 @@ -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; -pub fn payments_error_test(prompt: &str) -> Result<(), CommonWebError> { +pub fn payments_error_test(prompt: &str) -> Result<(), AdvancedCommonWebError> { let prompt = prompt.trim().to_ascii_lowercase(); if prompt == "trigger_payment_failure" { - return Err(CommonWebError::PaymentRequired); + return Err(AdvancedCommonWebError::PaymentRequired); } Ok(()) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/flux_2_lora_edit_image_angle_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/flux_2_lora_edit_image_angle_handler.rs index 813ce38bae..5db77c2a41 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/flux_2_lora_edit_image_angle_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/flux_2_lora_edit_image_angle_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoint_helpers::refund_wallet_after_api_failure::refund_wallet_after_api_failure; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -44,10 +44,10 @@ pub async fn flux_2_lora_edit_image_angle_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -60,7 +60,7 @@ pub async fn flux_2_lora_edit_image_angle_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -70,7 +70,7 @@ pub async fn flux_2_lora_edit_image_angle_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -84,14 +84,14 @@ pub async fn flux_2_lora_edit_image_angle_handler( ).await? .ok_or_else(|| { warn!("No image URLs found for media token"); - CommonWebError::BadInputWithSimpleMessage("Image media token not found".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("Image media token not found".to_string()) })?; insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -148,14 +148,14 @@ pub async fn flux_2_lora_edit_image_angle_handler( Err(err) => { warn!("Error calling enqueue_flux_2_lora_edit_image_angle_webhook: {:?}", err); refund_wallet_after_api_failure(&wallet_deduction.ledger_entry_token, &mut mysql_connection).await?; - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -167,7 +167,7 @@ pub async fn flux_2_lora_edit_image_angle_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let prompt_result = insert_prompt(InsertPromptArgs { @@ -251,7 +251,7 @@ pub async fn flux_2_lora_edit_image_angle_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -260,7 +260,7 @@ pub async fn flux_2_lora_edit_image_angle_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Flux2LoraEditImageAngleResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/qwen_edit_2511_edit_image_angle_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/qwen_edit_2511_edit_image_angle_handler.rs index dcded09ba5..d0b129bc8f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/qwen_edit_2511_edit_image_angle_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/angle/qwen_edit_2511_edit_image_angle_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoint_helpers::refund_wallet_after_api_failure::refund_wallet_after_api_failure; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -44,10 +44,10 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -60,7 +60,7 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -70,7 +70,7 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -84,14 +84,14 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( ).await? .ok_or_else(|| { warn!("No image URLs found for media token"); - CommonWebError::BadInputWithSimpleMessage("Image media token not found".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("Image media token not found".to_string()) })?; insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -149,14 +149,14 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( Err(err) => { warn!("Error calling enqueue_qwen_edit_2511_edit_image_angle_webhook: {:?}", err); refund_wallet_after_api_failure(&wallet_deduction.ledger_entry_token, &mut mysql_connection).await?; - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -168,7 +168,7 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let prompt_result = insert_prompt(InsertPromptArgs { @@ -252,7 +252,7 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -261,7 +261,7 @@ pub async fn qwen_edit_2511_edit_image_angle_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(QwenEdit2511EditImageAngleResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/bg_removal/remove_image_background_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/bg_removal/remove_image_background_handler.rs index faa10a956a..4aae0005eb 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/bg_removal/remove_image_background_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/bg_removal/remove_image_background_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; @@ -39,7 +39,7 @@ pub async fn remove_image_background_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await?; @@ -50,7 +50,7 @@ pub async fn remove_image_background_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -71,19 +71,19 @@ pub async fn remove_image_background_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -97,16 +97,16 @@ pub async fn remove_image_background_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", media_file_token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } let media_domain = get_media_domain(&http_request); @@ -135,13 +135,13 @@ pub async fn remove_image_background_handler( .await .map_err(|err| { warn!("Error calling remove_background_rembg_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -167,7 +167,7 @@ pub async fn remove_image_background_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/flux_pro_kontext_max_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/flux_pro_kontext_max_edit_image_handler.rs index c213757a27..357a1cbd1a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/flux_pro_kontext_max_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/flux_pro_kontext_max_edit_image_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::temporary_test_wallet_deduction::temporary_test_wallet_deduction; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -47,7 +47,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -61,7 +61,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -71,7 +71,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -81,12 +81,12 @@ pub async fn flux_pro_kontext_max_edit_image_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } const CAN_SEE_DELETED: bool = false; @@ -106,7 +106,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -114,7 +114,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( Some(file) => file, None => { warn!("No media files found for tokens: {:?}", media_tokens); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( "No media files found for provided tokens".to_string())); } }; @@ -139,7 +139,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; //// TODO: This is test code @@ -188,13 +188,13 @@ pub async fn flux_pro_kontext_max_edit_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_flux_pro_kontext_max_edit_webook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -206,7 +206,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -285,7 +285,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -294,7 +294,7 @@ pub async fn flux_pro_kontext_max_edit_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(FluxProKontextMaxEditImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs index 05bd1a8607..9a6e751274 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -51,12 +51,12 @@ pub async fn gemini_25_flash_edit_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -69,7 +69,7 @@ pub async fn gemini_25_flash_edit_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -79,7 +79,7 @@ pub async fn gemini_25_flash_edit_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -89,7 +89,7 @@ pub async fn gemini_25_flash_edit_image_handler( Some(tokens) => tokens, None => { warn!("No image media tokens provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No image media tokens provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No image media tokens provided".to_string())); } }; @@ -103,13 +103,13 @@ pub async fn gemini_25_flash_edit_image_handler( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if media_files.len() != tokens.len() { warn!("Wrong number of media files returned for tokens: {} found for {} tokens", media_files.len(), tokens.len()); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}", media_files.len(), tokens.len()))); } @@ -136,7 +136,7 @@ pub async fn gemini_25_flash_edit_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -176,13 +176,13 @@ pub async fn gemini_25_flash_edit_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_gpt_image_1_edit_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -194,7 +194,7 @@ pub async fn gemini_25_flash_edit_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -276,7 +276,7 @@ pub async fn gemini_25_flash_edit_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -285,7 +285,7 @@ pub async fn gemini_25_flash_edit_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Gemini25FlashEditImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs index c83d460061..5fbda3cecf 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -53,12 +53,12 @@ pub async fn gpt_image_1_edit_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -71,7 +71,7 @@ pub async fn gpt_image_1_edit_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -81,7 +81,7 @@ pub async fn gpt_image_1_edit_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -91,7 +91,7 @@ pub async fn gpt_image_1_edit_image_handler( Some(tokens) => tokens, None => { warn!("No image media tokens provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No image media tokens provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No image media tokens provided".to_string())); } }; @@ -105,13 +105,13 @@ pub async fn gpt_image_1_edit_image_handler( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if media_files.len() != tokens.len() { warn!("Wrong number of media files returned for tokens: {} found for {} tokens", media_files.len(), tokens.len()); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}", media_files.len(), tokens.len()))); } @@ -138,7 +138,7 @@ pub async fn gpt_image_1_edit_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -201,13 +201,13 @@ pub async fn gpt_image_1_edit_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_gpt_image_1_edit_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -219,7 +219,7 @@ pub async fn gpt_image_1_edit_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -308,7 +308,7 @@ pub async fn gpt_image_1_edit_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -317,7 +317,7 @@ pub async fn gpt_image_1_edit_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GptImage1EditImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs index 8f19a63ebd..21d972ec57 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -50,7 +50,7 @@ pub async fn qwen_edit_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -64,7 +64,7 @@ pub async fn qwen_edit_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -74,12 +74,12 @@ pub async fn qwen_edit_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } const CAN_SEE_DELETED: bool = false; @@ -99,7 +99,7 @@ pub async fn qwen_edit_image_handler( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -107,7 +107,7 @@ pub async fn qwen_edit_image_handler( Some(file) => file, None => { warn!("No media files found for tokens: {:?}", media_tokens); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( "No media files found for provided tokens".to_string())); } }; @@ -132,7 +132,7 @@ pub async fn qwen_edit_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -181,13 +181,13 @@ pub async fn qwen_edit_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_qwen_image_edit_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -199,7 +199,7 @@ pub async fn qwen_edit_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -281,7 +281,7 @@ pub async fn qwen_edit_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -290,7 +290,7 @@ pub async fn qwen_edit_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(QwenEditImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/seededit_3_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/seededit_3_edit_image_handler.rs index f640137f1a..d1f282911a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/seededit_3_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/seededit_3_edit_image_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -46,7 +46,7 @@ pub async fn seededit_3_edit_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -60,7 +60,7 @@ pub async fn seededit_3_edit_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -73,12 +73,12 @@ pub async fn seededit_3_edit_image_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } const CAN_SEE_DELETED: bool = false; @@ -98,7 +98,7 @@ pub async fn seededit_3_edit_image_handler( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -106,7 +106,7 @@ pub async fn seededit_3_edit_image_handler( Some(file) => file, None => { warn!("No media files found for tokens: {:?}", media_tokens); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( "No media files found for provided tokens".to_string())); } }; @@ -131,7 +131,7 @@ pub async fn seededit_3_edit_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -149,13 +149,13 @@ pub async fn seededit_3_edit_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_seededit_v3_image_edit_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -167,7 +167,7 @@ pub async fn seededit_3_edit_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -238,7 +238,7 @@ pub async fn seededit_3_edit_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -247,7 +247,7 @@ pub async fn seededit_3_edit_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(SeedEdit3EditImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_dev_juggernaut_inpaint_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_dev_juggernaut_inpaint_handler.rs index 8152248243..f72da16786 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_dev_juggernaut_inpaint_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_dev_juggernaut_inpaint_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -46,7 +46,7 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -60,7 +60,7 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -73,12 +73,12 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } const CAN_SEE_DELETED: bool = false; @@ -98,13 +98,13 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if media_files.len() != media_tokens.len() { warn!("Wrong number of media files returned for tokens: {} found for {} tokens", media_files.len(), media_tokens.len()); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}", media_files.len(), media_tokens.len()))); } @@ -115,14 +115,14 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( .find(|file| file.token == request.image_media_token) .ok_or_else(|| { warn!("Image media file not found for token: {}", request.image_media_token); - CommonWebError::BadInputWithSimpleMessage("Image media file not found".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("Image media file not found".to_string()) })?; let mask_media_file = media_files.iter() .find(|file| file.token == request.mask_media_token) .ok_or_else(|| { warn!("Mask media file not found for token: {}", request.mask_media_token); - CommonWebError::BadInputWithSimpleMessage("Mask media file not found".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("Mask media file not found".to_string()) })?; let image_url = { @@ -157,7 +157,7 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -185,13 +185,13 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_flux_dev_juggernaut_infill_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -203,7 +203,7 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -285,7 +285,7 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -294,7 +294,7 @@ pub async fn flux_dev_juggernaut_inpaint_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(FluxDevJuggernautInpaintImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_pro_1_inpaint_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_pro_1_inpaint_handler.rs index 2c7497243e..5d4a9cad1c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_pro_1_inpaint_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/inpaint/flux_pro_1_inpaint_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -46,7 +46,7 @@ pub async fn flux_pro_1_inpaint_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -60,7 +60,7 @@ pub async fn flux_pro_1_inpaint_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -73,12 +73,12 @@ pub async fn flux_pro_1_inpaint_image_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } const CAN_SEE_DELETED: bool = false; @@ -98,13 +98,13 @@ pub async fn flux_pro_1_inpaint_image_handler( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if media_files.len() != media_tokens.len() { warn!("Wrong number of media files returned for tokens: {} found for {} tokens", media_files.len(), media_tokens.len()); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}", media_files.len(), media_tokens.len()))); } @@ -115,14 +115,14 @@ pub async fn flux_pro_1_inpaint_image_handler( .find(|file| file.token == request.image_media_token) .ok_or_else(|| { warn!("Image media file not found for token: {}", request.image_media_token); - CommonWebError::BadInputWithSimpleMessage("Image media file not found".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("Image media file not found".to_string()) })?; let mask_media_file = media_files.iter() .find(|file| file.token == request.mask_media_token) .ok_or_else(|| { warn!("Mask media file not found for token: {}", request.mask_media_token); - CommonWebError::BadInputWithSimpleMessage("Mask media file not found".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("Mask media file not found".to_string()) })?; let image_url = { @@ -157,7 +157,7 @@ pub async fn flux_pro_1_inpaint_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -185,13 +185,13 @@ pub async fn flux_pro_1_inpaint_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_flux_pro_1_infill_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -203,7 +203,7 @@ pub async fn flux_pro_1_inpaint_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -285,7 +285,7 @@ pub async fn flux_pro_1_inpaint_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -294,7 +294,7 @@ pub async fn flux_pro_1_inpaint_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(FluxPro1InpaintImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_5_lite_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_5_lite_multi_function_image_gen_handler.rs index 7877e40b4f..d0bd958b7d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_5_lite_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_5_lite_multi_function_image_gen_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -46,12 +46,12 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -64,7 +64,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -74,7 +74,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -95,7 +95,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -158,7 +158,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_bytedance_seedream_v5_lite_edit_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -213,14 +213,14 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_bytedance_seedream_v5_lite_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -232,7 +232,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_aspect_ratio = request.image_size.map(|size| match size { @@ -330,7 +330,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -339,7 +339,7 @@ pub async fn bytedance_seedream_5_lite_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(BytedanceSeedream5LiteMultiFunctionImageGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs index ed7b1522a4..cd161de432 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,7 +58,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -72,7 +72,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -82,12 +82,12 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let image_urls = match request.image_media_tokens.as_ref() { @@ -107,7 +107,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -175,7 +175,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_bytedance_seedream_v4_edit_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -235,14 +235,14 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_bytedance_seedream_v4_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -254,7 +254,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -351,7 +351,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -360,7 +360,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(BytedanceSeedreamV4MultiFunctionImageGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs index 12cac93730..0b416a939d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,7 +58,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -72,7 +72,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -82,12 +82,12 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let image_urls = match request.image_media_tokens.as_ref() { @@ -107,7 +107,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -174,7 +174,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_bytedance_seedream_v4p5_edit_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -233,14 +233,14 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_bytedance_seedream_v4p5_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -252,7 +252,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -348,7 +348,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -357,7 +357,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(BytedanceSeedreamV4p5MultiFunctionImageGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs index 0f8863109f..e0a95753f4 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,12 +58,12 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -76,7 +76,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -86,7 +86,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -141,7 +141,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -223,7 +223,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_gpt_image_1p5_image_edit_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -289,14 +289,14 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_gpt_image_1p5_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -308,7 +308,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -399,7 +399,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -408,7 +408,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GptImage1p5MultiFunctionImageGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_2_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_2_multi_function_image_gen_handler.rs index d165d44e4e..e8e764a390 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_2_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_2_multi_function_image_gen_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -46,12 +46,12 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -64,7 +64,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -74,7 +74,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -95,7 +95,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -169,7 +169,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_nano_banana_2_edit_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -236,14 +236,14 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_nano_banana_2_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -255,7 +255,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_aspect_ratio = match request.aspect_ratio { @@ -360,7 +360,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -369,7 +369,7 @@ pub async fn nano_banana_2_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(NanaBanana2MultiFunctionImageGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs index d1521b2e4e..bbc7964575 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -61,12 +61,12 @@ pub async fn nano_banana_multi_function_image_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -79,7 +79,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -89,7 +89,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -110,7 +110,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -173,7 +173,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_gemini_25_flash_edit_webhook : {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -230,14 +230,14 @@ pub async fn nano_banana_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_gemini_25_flash_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -249,7 +249,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -348,7 +348,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -357,7 +357,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(NanoBananaMultiFunctionImageGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs index b58a5558d2..570a931cf5 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -59,12 +59,12 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -77,7 +77,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -87,7 +87,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -108,7 +108,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -179,7 +179,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_nano_banana_pro_image_edit_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -244,14 +244,14 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_nano_banana_pro_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -263,7 +263,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -369,7 +369,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -378,7 +378,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(NanoBananaProMultiFunctionImageGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_dev_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_dev_text_to_image_handler.rs index 1719fbcc19..a5b6ed31c8 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_dev_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_dev_text_to_image_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::temporary_test_wallet_deduction::temporary_test_wallet_deduction; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::job_failure_test::test_synthetic_failure_reason; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; @@ -48,7 +48,7 @@ pub async fn generate_flux_1_dev_text_to_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -62,7 +62,7 @@ pub async fn generate_flux_1_dev_text_to_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -72,7 +72,7 @@ pub async fn generate_flux_1_dev_text_to_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -82,19 +82,19 @@ pub async fn generate_flux_1_dev_text_to_image_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; // Secret test hook: insert a synthetic "complete_failure" job without calling Fal. @@ -169,13 +169,13 @@ pub async fn generate_flux_1_dev_text_to_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_flux_1_dev_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -187,7 +187,7 @@ pub async fn generate_flux_1_dev_text_to_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -258,7 +258,7 @@ pub async fn generate_flux_1_dev_text_to_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -267,7 +267,7 @@ pub async fn generate_flux_1_dev_text_to_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateFlux1DevTextToImageResponse { @@ -287,7 +287,7 @@ async fn insert_mock_failure_job( maybe_frontend_failure_category: Option, maybe_failure_reason: Option<&str>, mysql_connection: &mut sqlx::pool::PoolConnection, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let ip_address = get_request_ip(http_request); let mut transaction = mysql_connection @@ -295,7 +295,7 @@ async fn insert_mock_failure_job( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let prompt_result = insert_prompt(InsertPromptArgs { @@ -346,7 +346,7 @@ async fn insert_mock_failure_job( Ok(token) => token, Err(err) => { warn!("Error inserting mock failure job: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -355,7 +355,7 @@ async fn insert_mock_failure_job( .await .map_err(|err| { error!("Error committing mock failure transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateFlux1DevTextToImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_schnell_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_schnell_text_to_image_handler.rs index 13ef78099b..5face6e206 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_schnell_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_1_schnell_text_to_image_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::temporary_test_wallet_deduction::temporary_test_wallet_deduction; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -42,7 +42,7 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -56,7 +56,7 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -66,7 +66,7 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -76,19 +76,19 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; // // TODO: This is test code @@ -149,13 +149,13 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_flux_1_schnell_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -167,7 +167,7 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -238,7 +238,7 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -247,7 +247,7 @@ pub async fn generate_flux_1_schnell_text_to_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateFlux1SchnellTextToImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_text_to_image_handler.rs index d04b874d7d..5d9635d044 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_text_to_image_handler.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; use crate::billing::wallets::temporary_test_wallet_deduction::temporary_test_wallet_deduction; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -48,7 +48,7 @@ pub async fn generate_flux_pro_11_text_to_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -62,7 +62,7 @@ pub async fn generate_flux_pro_11_text_to_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -72,19 +72,19 @@ pub async fn generate_flux_pro_11_text_to_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -137,13 +137,13 @@ pub async fn generate_flux_pro_11_text_to_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_flux_pro_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -155,7 +155,7 @@ pub async fn generate_flux_pro_11_text_to_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -228,7 +228,7 @@ pub async fn generate_flux_pro_11_text_to_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -237,7 +237,7 @@ pub async fn generate_flux_pro_11_text_to_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateFluxPro11TextToImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_ultra_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_ultra_text_to_image_handler.rs index fcd15fcbba..945834edd0 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_ultra_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_flux_pro_11_ultra_text_to_image_handler.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; use crate::billing::wallets::temporary_test_wallet_deduction::temporary_test_wallet_deduction; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -48,7 +48,7 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -62,7 +62,7 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -72,19 +72,19 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -141,13 +141,13 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_flux_pro_ultra_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -159,7 +159,7 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -236,7 +236,7 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -245,7 +245,7 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateFluxPro11UltraTextToImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_gpt_image_1_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_gpt_image_1_text_to_image_handler.rs index e3d3902949..fb661c7f62 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_gpt_image_1_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/text/generate_gpt_image_1_text_to_image_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -50,12 +50,12 @@ pub async fn generate_gpt_image_1_text_to_image_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut mysql_connection = server_state.mysql_pool @@ -68,7 +68,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -78,7 +78,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -90,7 +90,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -153,13 +153,13 @@ pub async fn generate_gpt_image_1_text_to_image_handler( .await .map_err(|err| { warn!("Error calling enqueue_gpt_image_1_text_to_image_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -171,7 +171,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -242,7 +242,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -251,7 +251,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateGptImage1TextToImageResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_0_image_to_3d_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_0_image_to_3d_handler.rs index ea8bc9813d..c1d74a9d22 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_0_image_to_3d_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_0_image_to_3d_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; @@ -47,7 +47,7 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await?; @@ -58,7 +58,7 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -71,7 +71,7 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; @@ -79,19 +79,19 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -105,16 +105,16 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", media_file_token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } let media_domain = get_media_domain(&http_request); @@ -143,13 +143,13 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( .await .map_err(|err| { warn!("Error calling enqueue_hunyuan2_image_to_3d_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -158,7 +158,7 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( let mut transaction = mysql_connection.begin().await.map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // Insert prompt record if we have a prompt @@ -233,13 +233,13 @@ pub async fn generate_hunyuan_2_0_image_to_3d_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; let _r = transaction.commit().await.map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateHunyuan20ImageTo3dResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_1_image_to_3d_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_1_image_to_3d_handler.rs index 9ff3a290f5..59aa372e6e 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_1_image_to_3d_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/generate_hunyuan_2_1_image_to_3d_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; @@ -46,7 +46,7 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await?; @@ -57,7 +57,7 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -70,7 +70,7 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( // Some(session) => session, // None => { // warn!("not logged in"); - // return Err(CommonWebError::NotAuthorized); + // return Err(AdvancedCommonWebError::NotAuthorized); // } //}; @@ -78,19 +78,19 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -104,16 +104,16 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", media_file_token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } let media_domain = get_media_domain(&http_request); @@ -142,13 +142,13 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( .await .map_err(|err| { warn!("Error calling enqueue_hunyuan_3d_2_1_image_to_3d_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -157,7 +157,7 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( let mut transaction = mysql_connection.begin().await.map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // Insert prompt record if we have a prompt @@ -232,13 +232,13 @@ pub async fn generate_hunyuan_2_1_image_to_3d_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; let _r = transaction.commit().await.map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateHunyuan21ImageTo3dResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/multi_function/generate_hunyuan3d_v3_multi_function_object_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/multi_function/generate_hunyuan3d_v3_multi_function_object_handler.rs index 7e5a56ef35..d7cdce5f89 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/multi_function/generate_hunyuan3d_v3_multi_function_object_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/object/multi_function/generate_hunyuan3d_v3_multi_function_object_handler.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -61,7 +61,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; let mut mysql_connection = server_state.mysql_pool.acquire().await?; @@ -72,7 +72,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -80,7 +80,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( .get_avt_token_from_request(&http_request); if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } // Collect all media tokens to look up in a single batch query @@ -142,7 +142,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -196,7 +196,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( "Error calling enqueue_hunyuan3d_v3_text_to_3d_webhook: {:?}", err ); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })? } @@ -237,7 +237,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( "Error calling enqueue_hunyuan3d_v3_sketch_to_3d_webhook: {:?}", err ); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })? } @@ -280,13 +280,13 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( "Error calling enqueue_hunyuan3d_v3_image_to_3d_webhook: {:?}", err ); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })? } // Neither prompt nor image - invalid request (false, false) => { - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( "Either prompt or image_media_token must be provided".to_string(), )); } @@ -294,7 +294,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( let external_job_id = fal_result.request_id.ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -303,7 +303,7 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( let mut transaction = mysql_connection.begin().await.map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // Insert prompt record if we have a prompt @@ -403,13 +403,13 @@ pub async fn generate_hunyuan3d_v3_multi_function_object_handler( "Error inserting generic inference job for FAL queue: {:?}", err ); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; let _r = transaction.commit().await.map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Hunyuan3dV3MultiFunctionObjectGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_1_6_pro_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_1_6_pro_video_handler.rs index 5299853d74..79c6df114d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_1_6_pro_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_1_6_pro_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -50,7 +50,7 @@ pub async fn generate_kling_1_6_pro_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -64,7 +64,7 @@ pub async fn generate_kling_1_6_pro_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -74,7 +74,7 @@ pub async fn generate_kling_1_6_pro_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -82,7 +82,7 @@ pub async fn generate_kling_1_6_pro_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; @@ -103,19 +103,19 @@ pub async fn generate_kling_1_6_pro_video_handler( for media_file in media_files.iter() { if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } } if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; let media_domain = get_media_domain(&http_request); @@ -126,7 +126,7 @@ pub async fn generate_kling_1_6_pro_video_handler( .map(|file| file.cdn_url) .ok_or_else(|| { warn!("Start frame media file not found after fetch"); - CommonWebError::NotFound + AdvancedCommonWebError::NotFound })?; let maybe_end_frame_url = match maybe_end_frame_image_media_token { @@ -137,7 +137,7 @@ pub async fn generate_kling_1_6_pro_video_handler( .map(|file| file.cdn_url) .ok_or_else(|| { warn!("End frame media file not found after fetch"); - CommonWebError::NotFound + AdvancedCommonWebError::NotFound })?), }; @@ -192,13 +192,13 @@ pub async fn generate_kling_1_6_pro_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_16_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -210,7 +210,7 @@ pub async fn generate_kling_1_6_pro_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -277,7 +277,7 @@ pub async fn generate_kling_1_6_pro_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -286,7 +286,7 @@ pub async fn generate_kling_1_6_pro_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateKling16ProImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_master_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_master_video_handler.rs index a724cbc508..e373012922 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_master_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_master_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -49,7 +49,7 @@ pub async fn generate_kling_2_1_master_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -63,7 +63,7 @@ pub async fn generate_kling_2_1_master_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -73,7 +73,7 @@ pub async fn generate_kling_2_1_master_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -81,19 +81,19 @@ pub async fn generate_kling_2_1_master_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -107,16 +107,16 @@ pub async fn generate_kling_2_1_master_video_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", media_file_token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } let media_domain = get_media_domain(&http_request); @@ -181,13 +181,13 @@ pub async fn generate_kling_2_1_master_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_21_master_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -199,7 +199,7 @@ pub async fn generate_kling_2_1_master_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -264,7 +264,7 @@ pub async fn generate_kling_2_1_master_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -273,7 +273,7 @@ pub async fn generate_kling_2_1_master_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateKling21MasterImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_pro_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_pro_video_handler.rs index a4f8328fa7..b0136efd7f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_pro_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_kling_2_1_pro_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -55,7 +55,7 @@ pub async fn generate_kling_2_1_pro_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -69,7 +69,7 @@ pub async fn generate_kling_2_1_pro_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -79,7 +79,7 @@ pub async fn generate_kling_2_1_pro_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -87,7 +87,7 @@ pub async fn generate_kling_2_1_pro_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; @@ -108,19 +108,19 @@ pub async fn generate_kling_2_1_pro_video_handler( for media_file in media_files.iter() { if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } } if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; let media_domain = get_media_domain(&http_request); @@ -131,7 +131,7 @@ pub async fn generate_kling_2_1_pro_video_handler( .map(|file| file.cdn_url) .ok_or_else(|| { warn!("Start frame media file not found after fetch"); - CommonWebError::NotFound + AdvancedCommonWebError::NotFound })?; let maybe_end_frame_url = match maybe_end_frame_image_media_token { @@ -142,7 +142,7 @@ pub async fn generate_kling_2_1_pro_video_handler( .map(|file| file.cdn_url) .ok_or_else(|| { warn!("End frame media file not found after fetch"); - CommonWebError::NotFound + AdvancedCommonWebError::NotFound })?), }; @@ -197,13 +197,13 @@ pub async fn generate_kling_2_1_pro_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_21_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -215,7 +215,7 @@ pub async fn generate_kling_2_1_pro_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -280,7 +280,7 @@ pub async fn generate_kling_2_1_pro_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -289,7 +289,7 @@ pub async fn generate_kling_2_1_pro_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateKling21ProImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_lite_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_lite_image_to_video_handler.rs index 73b8b5552f..2e9f4930cc 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_lite_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_lite_image_to_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -55,7 +55,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -69,7 +69,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -79,7 +79,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -87,7 +87,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; @@ -108,19 +108,19 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( for media_file in media_files.iter() { if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } } if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; let media_domain = get_media_domain(&http_request); @@ -131,7 +131,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( .map(|file| file.cdn_url) .ok_or_else(|| { warn!("Start frame media file not found after fetch"); - CommonWebError::NotFound + AdvancedCommonWebError::NotFound })?; let maybe_end_frame_url = match maybe_end_frame_image_media_token { @@ -142,7 +142,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( .map(|file| file.cdn_url) .ok_or_else(|| { warn!("End frame media file not found after fetch"); - CommonWebError::NotFound + AdvancedCommonWebError::NotFound })?), }; @@ -211,13 +211,13 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_seedance_1_lite_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -229,7 +229,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -298,7 +298,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -307,7 +307,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateSeedance10LiteImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_pro_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_pro_image_to_video_handler.rs index 5f5bac127a..4c42c29226 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_pro_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_seedance_1_0_pro_image_to_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -52,7 +52,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -66,7 +66,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -76,7 +76,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -84,7 +84,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; @@ -99,19 +99,19 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( for media_file in media_files.iter() { if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } } if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; let media_domain = get_media_domain(&http_request); @@ -122,7 +122,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( .map(|file| file.cdn_url) .ok_or_else(|| { warn!("Start frame media file not found after fetch"); - CommonWebError::NotFound + AdvancedCommonWebError::NotFound })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -185,13 +185,13 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_seedance_1_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -203,7 +203,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -272,7 +272,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -281,7 +281,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateSeedance10ProImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_2_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_2_image_to_video_handler.rs index 9b878a2e9e..feda43c35d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_2_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_2_image_to_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::analytics::log_browser_session_handler::LogBrowserSessionError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; @@ -56,7 +56,7 @@ pub async fn generate_veo_2_image_to_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -70,7 +70,7 @@ pub async fn generate_veo_2_image_to_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -80,7 +80,7 @@ pub async fn generate_veo_2_image_to_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -88,19 +88,19 @@ pub async fn generate_veo_2_image_to_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -114,16 +114,16 @@ pub async fn generate_veo_2_image_to_video_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", media_file_token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } let media_domain = get_media_domain(&http_request); @@ -186,13 +186,13 @@ pub async fn generate_veo_2_image_to_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_veo_2_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -204,7 +204,7 @@ pub async fn generate_veo_2_image_to_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -269,7 +269,7 @@ pub async fn generate_veo_2_image_to_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -278,7 +278,7 @@ pub async fn generate_veo_2_image_to_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateVeo2ImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_fast_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_fast_image_to_video_handler.rs index 4036e3eb43..d6da8476a5 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_fast_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_fast_image_to_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::analytics::log_browser_session_handler::LogBrowserSessionError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; @@ -48,7 +48,7 @@ pub async fn generate_veo_3_fast_image_to_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -62,7 +62,7 @@ pub async fn generate_veo_3_fast_image_to_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -72,7 +72,7 @@ pub async fn generate_veo_3_fast_image_to_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -80,19 +80,19 @@ pub async fn generate_veo_3_fast_image_to_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -106,16 +106,16 @@ pub async fn generate_veo_3_fast_image_to_video_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", media_file_token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } let media_domain = get_media_domain(&http_request); @@ -190,13 +190,13 @@ pub async fn generate_veo_3_fast_image_to_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_veo_3_fast_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -208,7 +208,7 @@ pub async fn generate_veo_3_fast_image_to_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -274,7 +274,7 @@ pub async fn generate_veo_3_fast_image_to_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -283,7 +283,7 @@ pub async fn generate_veo_3_fast_image_to_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateVeo3FastImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_image_to_video_handler.rs index dc7c19a5b7..41ec744305 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/image/generate_veo_3_image_to_video_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::analytics::log_browser_session_handler::LogBrowserSessionError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; @@ -51,7 +51,7 @@ pub async fn generate_veo_3_image_to_video_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -65,7 +65,7 @@ pub async fn generate_veo_3_image_to_video_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -75,7 +75,7 @@ pub async fn generate_veo_3_image_to_video_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -83,19 +83,19 @@ pub async fn generate_veo_3_image_to_video_handler( Some(token) => token, None => { warn!("No media file token provided"); - return Err(CommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("No media file token provided".to_string())); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } insert_idempotency_token(&request.uuid_idempotency_token, &mut *mysql_connection) .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; const IS_MOD : bool = false; @@ -109,16 +109,16 @@ pub async fn generate_veo_3_image_to_video_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", media_file_token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if !media_file.media_type.is_jpg_or_png_or_legacy_image() { - return Err(CommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media file must be a JPG or PNG image".to_string())); } let media_domain = get_media_domain(&http_request); @@ -194,13 +194,13 @@ pub async fn generate_veo_3_image_to_video_handler( .await .map_err(|err| { warn!("Error calling enqueue_veo_3_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -212,7 +212,7 @@ pub async fn generate_veo_3_image_to_video_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -278,7 +278,7 @@ pub async fn generate_veo_3_image_to_video_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -287,7 +287,7 @@ pub async fn generate_veo_3_image_to_video_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GenerateVeo3ImageToVideoResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs index e83dccc848..6d2b90e73a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -60,7 +60,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -74,7 +74,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -84,12 +84,12 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -124,7 +124,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -134,7 +134,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); } } }; @@ -143,7 +143,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -193,7 +193,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_v2p5_turbo_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -242,14 +242,14 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_v2p5_turbo_pro_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -261,7 +261,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -357,7 +357,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -366,7 +366,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Kling2p5TurboProMultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs index ecc16dcab9..54b4542f1c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,7 +58,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -72,7 +72,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -82,12 +82,12 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -122,7 +122,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -132,7 +132,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( // Some(token) => match image_urls_by_token.get(token) { // Some(url) => Some(url.to_string()), // None => { - // return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + // return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); // } // } // }; @@ -141,7 +141,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -190,7 +190,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_v2p6_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -239,14 +239,14 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_v2p6_pro_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -258,7 +258,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -354,7 +354,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -363,7 +363,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Kling2p6ProMultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_pro_multi_function_video_gen_handler.rs index da216b1d8b..174f1433df 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_pro_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,7 +58,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -72,7 +72,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -82,12 +82,12 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -121,7 +121,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -131,7 +131,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); } } }; @@ -140,7 +140,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -192,7 +192,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_3p0_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -233,14 +233,14 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_3p0_pro_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -252,7 +252,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -359,7 +359,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -368,7 +368,7 @@ pub async fn kling_3p0_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Kling3p0ProMultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_standard_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_standard_multi_function_video_gen_handler.rs index a2304fcd04..b1084216b1 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_standard_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_3p0_standard_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,7 +58,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -72,7 +72,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -82,12 +82,12 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -121,7 +121,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -131,7 +131,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); } } }; @@ -140,7 +140,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -192,7 +192,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_3p0_standard_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -233,14 +233,14 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_kling_3p0_standard_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -252,7 +252,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -359,7 +359,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -368,7 +368,7 @@ pub async fn kling_3p0_standard_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Kling3p0StandardMultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs index e87ede927b..65f5aa70a4 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/seedance_1p5_pro_multi_function_video_gen_handler.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -47,7 +47,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { info!("Request: {:?}", request); @@ -63,7 +63,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -73,12 +73,12 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } // Collect media tokens to look up @@ -109,7 +109,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -119,7 +119,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); } } }; @@ -128,7 +128,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -180,7 +180,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_seedance_1p5_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -220,14 +220,14 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_seedance_1p5_pro_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -239,7 +239,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -346,7 +346,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -355,7 +355,7 @@ pub async fn seedance_1p5_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Seedance1p5ProMultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs index 8009632276..1f44a33a19 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,7 +58,7 @@ pub async fn sora_2_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -72,7 +72,7 @@ pub async fn sora_2_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -82,12 +82,12 @@ pub async fn sora_2_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -122,7 +122,7 @@ pub async fn sora_2_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -132,7 +132,7 @@ pub async fn sora_2_multi_function_video_gen_handler( // Some(token) => match image_urls_by_token.get(token) { // Some(url) => Some(url.to_string()), // None => { - // return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + // return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); // } // } // }; @@ -141,7 +141,7 @@ pub async fn sora_2_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -204,7 +204,7 @@ pub async fn sora_2_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_sora_2_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -259,14 +259,14 @@ pub async fn sora_2_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_sora_2_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -278,7 +278,7 @@ pub async fn sora_2_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -375,7 +375,7 @@ pub async fn sora_2_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -384,7 +384,7 @@ pub async fn sora_2_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Sora2MultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs index 45ff731594..cc012d26c7 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -58,7 +58,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -72,7 +72,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -82,12 +82,12 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -122,7 +122,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -132,7 +132,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( // Some(token) => match image_urls_by_token.get(token) { // Some(url) => Some(url.to_string()), // None => { - // return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + // return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); // } // } // }; @@ -141,7 +141,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -205,7 +205,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_sora_2_pro_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -261,14 +261,14 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_sora_2_pro_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -280,7 +280,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -377,7 +377,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -386,7 +386,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Sora2ProMultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs index 32fb5458f7..ea193f8996 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -57,7 +57,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -71,7 +71,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -81,12 +81,12 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -121,7 +121,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -131,7 +131,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); } } }; @@ -140,7 +140,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -209,7 +209,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling veo_3p1_fast_first_last_frame_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -266,7 +266,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_veo_3p1_fast_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } @@ -327,14 +327,14 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_veo_3p1_fast_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -346,7 +346,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -443,7 +443,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -452,7 +452,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Veo3p1FastMultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs index d100b97cab..fd08c4905c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs @@ -3,7 +3,7 @@ use std::iter::FromIterator; use std::sync::Arc; use crate::billing::wallets::attempt_wallet_deduction::attempt_wallet_deduction_else_common_web_error; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -57,7 +57,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( http_request: HttpRequest, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { payments_error_test(&request.prompt.as_deref().unwrap_or(""))?; @@ -71,7 +71,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_avt_token = server_state @@ -81,12 +81,12 @@ pub async fn veo_3p1_multi_function_video_gen_handler( let user_token = match maybe_user_session.as_ref() { Some(session) => &session.user_token, None => { - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; if let Err(reason) = validate_idempotency_token_format(&request.uuid_idempotency_token) { - return Err(CommonWebError::BadInputWithSimpleMessage(reason)); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage(reason)); } let mut query_media_tokens = None; @@ -121,7 +121,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for start frame not found.".to_string())); } } }; @@ -131,7 +131,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( Some(token) => match image_urls_by_token.get(token) { Some(url) => Some(url.to_string()), None => { - return Err(CommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("Media for end frame not found.".to_string())); } } }; @@ -140,7 +140,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; info!("Fal webhook URL: {}", server_state.fal.webhook_url); @@ -209,7 +209,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling veo_3p1_first_last_frame_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } else { @@ -266,7 +266,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_veo_3p1_image_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } @@ -327,14 +327,14 @@ pub async fn veo_3p1_multi_function_video_gen_handler( .await .map_err(|err| { warn!("Error calling enqueue_veo_3p1_text_to_video_webhook: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; } let external_job_id = fal_result.request_id .ok_or_else(|| { warn!("Fal request_id is None"); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Fal request_id: {}", external_job_id); @@ -346,7 +346,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; // NB: Don't fail the job if the query fails. @@ -443,7 +443,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( Ok(token) => token, Err(err) => { warn!("Error inserting generic inference job for FAL queue: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -452,7 +452,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(Veo3p1MultiFunctionVideoGenResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/dismiss_finished_session_jobs_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/dismiss_finished_session_jobs_handler.rs index a6af6b0485..33c17ed9e0 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/dismiss_finished_session_jobs_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/dismiss_finished_session_jobs_handler.rs @@ -7,7 +7,7 @@ use utoipa::ToSchema; use mysql_queries::queries::generic_inference::web::dismiss_finished_jobs_for_user::dismiss_finished_jobs_for_user; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_user_session_using_connection::require_user_session_using_connection; use crate::state::server_state::ServerState; @@ -25,19 +25,19 @@ pub struct DismissFinishedSessionJobsSuccessResponse { path = "/v1/jobs/session/dismiss_finished", responses( (status = 200, body = DismissFinishedSessionJobsSuccessResponse), - (status = 401, body = CommonWebError), - (status = 500, body = CommonWebError), + (status = 401, body = AdvancedCommonWebError), + (status = 500, body = AdvancedCommonWebError), ), )] pub async fn dismiss_finished_session_jobs_handler( http_request: HttpRequest, - server_state: web::Data>) -> Result, CommonWebError> + server_state: web::Data>) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool.acquire() .await .map_err(|e| { error!("Could not acquire DB pool: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let user_session = require_user_session_using_connection( @@ -48,7 +48,7 @@ pub async fn dismiss_finished_session_jobs_handler( .await .map_err(|err| { error!("tts job query error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(DismissFinishedSessionJobsSuccessResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs index b9a314d57d..c8a8a0952f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/delete/delete_media_file_handler.rs @@ -1,7 +1,7 @@ use std::fmt; use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; use crate::util::delete_role_disambiguation::{delete_role_disambiguation, DeleteRole}; @@ -27,9 +27,9 @@ use utoipa::ToSchema; path = "/v1/media_files/file/{token}", responses( (status = 200, description = "Success Delete", body = SimpleGenericJsonSuccess), - (status = 400, description = "Bad input", body = CommonWebError), - (status = 401, description = "Not authorized", body = CommonWebError), - (status = 500, description = "Server error", body = CommonWebError), + (status = 400, description = "Bad input", body = AdvancedCommonWebError), + (status = 401, description = "Not authorized", body = AdvancedCommonWebError), + (status = 500, description = "Server error", body = AdvancedCommonWebError), ), params( ("request" = DeleteMediaFileRequest, description = "Payload for Request"), @@ -41,21 +41,21 @@ pub async fn delete_media_file_handler( path: Path, request: Json, server_state: web::Data> -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let user_session = match maybe_user_session { Some(session) => session, None => { warn!("not logged in"); - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } }; @@ -71,11 +71,11 @@ pub async fn delete_media_file_handler( Ok(Some(media_file)) => media_file, Ok(None) => { warn!("MediaFile not found: {:?}", path.token); - return Err(CommonWebError::NotFound); + return Err(AdvancedCommonWebError::NotFound); }, Err(err) => { warn!("Error looking up media_file: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -84,7 +84,7 @@ pub async fn delete_media_file_handler( if !is_creator && !is_mod { warn!("user is not allowed to delete this media_file: {:?}", user_session.user_token); - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } let delete_role = delete_role_disambiguation(is_mod, is_creator, request.as_mod); @@ -93,7 +93,7 @@ pub async fn delete_media_file_handler( match delete_role { DeleteRole::ErrorDoNotDelete => { warn!("user is not allowed to delete media_files: {:?}", user_session.user_token); - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } DeleteRole::AsUser => { delete_media_file_as_user( @@ -113,7 +113,7 @@ pub async fn delete_media_file_handler( match delete_role { DeleteRole::ErrorDoNotDelete => { warn!("user is not allowed to undelete voices: {:?}", user_session.user_token); - return Err(CommonWebError::NotAuthorized); + return Err(AdvancedCommonWebError::NotAuthorized); } DeleteRole::AsUser => { // NB: Technically only mods can see their own media_files @@ -136,7 +136,7 @@ pub async fn delete_media_file_handler( Ok(_) => {}, Err(err) => { warn!("Update media_file mod approval status DB error: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs index a53a9d35ab..aa823de2c3 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs @@ -12,7 +12,7 @@ use artcraft_api_defs::moderation::jobs::user::list_user_jobs::{ use mysql_queries::queries::generic_inference::web::list_user_jobs_for_moderation::list_user_jobs_for_moderation; use tokens::tokens::users::UserToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -34,17 +34,17 @@ pub async fn list_user_jobs_handler( http_request: HttpRequest, path: Path, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let results = list_user_jobs_for_moderation(&path.user_token, &server_state.mysql_pool) .await .map_err(|err| { warn!("list_user_jobs error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let jobs = results.into_iter().map(|row| ListUserJobsEntry { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_subscribing_users_by_signup_date.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_subscribing_users_by_signup_date.rs index 6e45c7a854..0ec3b89515 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_subscribing_users_by_signup_date.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_subscribing_users_by_signup_date.rs @@ -14,7 +14,7 @@ use mysql_queries::queries::users::user::list::list_subscribing_users_by_signup_ ListSubscribingUsersBySignupDateArgs, }; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -34,11 +34,11 @@ pub async fn moderator_list_subscribing_users_by_signup_date_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let result = list_subscribing_users_by_signup_date_for_moderation( ListSubscribingUsersBySignupDateArgs { @@ -49,7 +49,7 @@ pub async fn moderator_list_subscribing_users_by_signup_date_handler( ).await .map_err(|err| { warn!("moderator_list_subscribing_users_by_signup_date error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let users = result.users.into_iter().map(|u| ModeratorListSubscribingUsersBySignupDateEntry { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_users_by_signup_date.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_users_by_signup_date.rs index 9c25779164..5155434b2b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_users_by_signup_date.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_list_users_by_signup_date.rs @@ -14,7 +14,7 @@ use mysql_queries::queries::users::user::list::list_users_by_signup_date_for_mod ListUsersBySignupDateArgs, }; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -34,11 +34,11 @@ pub async fn moderator_list_users_by_signup_date_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let result = list_users_by_signup_date_for_moderation( ListUsersBySignupDateArgs { @@ -49,7 +49,7 @@ pub async fn moderator_list_users_by_signup_date_handler( ).await .map_err(|err| { warn!("moderator_list_users_by_signup_date error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let users = result.users.into_iter().map(|u| ModeratorListUsersBySignupDateEntry { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_by_stripe_customer_id_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_by_stripe_customer_id_handler.rs index 919ba65c0b..4566cf70c7 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_by_stripe_customer_id_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_by_stripe_customer_id_handler.rs @@ -11,7 +11,7 @@ use artcraft_api_defs::moderation::user::user_lookup_by_stripe_customer_id::{ }; use mysql_queries::queries::users::user_subscriptions::lookup_users_by_stripe_customer_id::lookup_users_by_stripe_customer_id; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -31,11 +31,11 @@ pub async fn moderator_user_lookup_by_stripe_customer_id_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let stripe_customer_id = request.stripe_customer_id.trim(); @@ -50,7 +50,7 @@ pub async fn moderator_user_lookup_by_stripe_customer_id_handler( .await .map_err(|err| { warn!("moderator_user_lookup_by_stripe_customer_id error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let users = results.into_iter().map(|row| ModeratorUserLookupByStripeCustomerIdEntry { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_handler.rs index 59de640b32..5041c12433 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user/moderator_user_lookup_handler.rs @@ -16,7 +16,7 @@ use mysql_queries::queries::users::user::get::lookup_user_for_moderation::{ }; use tokens::tokens::users::UserToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -38,11 +38,11 @@ pub async fn moderator_user_lookup_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let search = request.search.trim(); @@ -64,7 +64,7 @@ pub async fn moderator_user_lookup_handler( let maybe_user = maybe_result .map_err(|err| { warn!("moderator_user_lookup error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_user_details = maybe_user.map(|user| ModeratorUserLookupUserDetails { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/list_wallet_ledger_entries_by_wallet_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/list_wallet_ledger_entries_by_wallet_handler.rs index 98bb950ff5..abdc72410a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/list_wallet_ledger_entries_by_wallet_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/list_wallet_ledger_entries_by_wallet_handler.rs @@ -12,7 +12,7 @@ use artcraft_api_defs::moderation::wallet_ledger_entries::list_wallet_ledger_ent use mysql_queries::queries::wallet_ledger_entries::list_wallet_ledger_entries_by_wallet::list_wallet_ledger_entries_by_wallet; use tokens::tokens::wallets::WalletToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -34,17 +34,17 @@ pub async fn list_wallet_ledger_entries_by_wallet_handler( http_request: HttpRequest, path: Path, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let results = list_wallet_ledger_entries_by_wallet(&path.wallet_token, &server_state.mysql_pool) .await .map_err(|err| { warn!("list_wallet_ledger_entries_by_wallet error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let entries = results.into_iter().map(|row| ListWalletLedgerEntriesByWalletEntry { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/moderator_get_wallet_ledger_entry_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/moderator_get_wallet_ledger_entry_handler.rs index 50debe1d08..c40820635d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/moderator_get_wallet_ledger_entry_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallet_ledger_entries/moderator_get_wallet_ledger_entry_handler.rs @@ -12,7 +12,7 @@ use artcraft_api_defs::moderation::wallet_ledger_entries::moderator_get_wallet_l use mysql_queries::queries::wallet_ledger_entries::get_wallet_ledger_entry_for_moderation::get_wallet_ledger_entry_for_moderation; use tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -34,17 +34,17 @@ pub async fn moderator_get_wallet_ledger_entry_handler( http_request: HttpRequest, path: Path, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let maybe_entry = get_wallet_ledger_entry_for_moderation(&path.wallet_ledger_entry_token, &server_state.mysql_pool) .await .map_err(|err| { warn!("moderator_get_wallet_ledger_entry error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_entry_details = maybe_entry.map(|entry| ModeratorGetWalletLedgerEntryDetails { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/list_user_wallets_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/list_user_wallets_handler.rs index bf787701d9..32e2470875 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/list_user_wallets_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/list_user_wallets_handler.rs @@ -12,7 +12,7 @@ use artcraft_api_defs::moderation::wallets::list_user_wallets::{ use mysql_queries::queries::wallets::list_user_wallets_for_moderation::list_user_wallets_for_moderation; use tokens::tokens::users::UserToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -34,17 +34,17 @@ pub async fn list_user_wallets_handler( http_request: HttpRequest, path: Path, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let results = list_user_wallets_for_moderation(&path.user_token, &server_state.mysql_pool) .await .map_err(|err| { warn!("list_user_wallets error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let wallets = results.into_iter().map(|row| ListUserWalletsEntry { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_create_wallet_for_user_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_create_wallet_for_user_handler.rs index a4d6339a0f..b47017acfc 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_create_wallet_for_user_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_create_wallet_for_user_handler.rs @@ -14,7 +14,7 @@ use mysql_queries::queries::users::user::get::get_username_by_user_token::get_us use mysql_queries::queries::wallets::create_new_wallet_for_owner_user::create_new_wallet_for_owner_user; use mysql_queries::queries::wallets::find_primary_wallet_token_for_owner::find_primary_wallet_token_for_owner_using_connection; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -35,25 +35,25 @@ pub async fn moderator_create_wallet_for_user_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let user_token = request.user_token.as_ref() - .ok_or_else(|| CommonWebError::BadInputWithSimpleMessage("user_token is required".to_string()))?; + .ok_or_else(|| AdvancedCommonWebError::BadInputWithSimpleMessage("user_token is required".to_string()))?; // Verify user exists let maybe_user = get_username_by_user_token(user_token, &server_state.mysql_pool) .await .map_err(|err| { warn!("moderator_create_wallet_for_user user lookup error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; if maybe_user.is_none() { - return Err(CommonWebError::BadInputWithSimpleMessage("User not found".to_string())); + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage("User not found".to_string())); } let namespace = request.payments_namespace.unwrap_or(PaymentsNamespace::Artcraft); @@ -64,7 +64,7 @@ pub async fn moderator_create_wallet_for_user_handler( .await .map_err(|err| { error!("Error acquiring MySQL connection: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_wallet_token = find_primary_wallet_token_for_owner_using_connection( @@ -73,7 +73,7 @@ pub async fn moderator_create_wallet_for_user_handler( &mut mysql_connection, ).await.map_err(|err| { error!("Error finding wallet for user {:?}: {:?}", user_token, err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; if let Some(wallet_token) = maybe_wallet_token { @@ -89,7 +89,7 @@ pub async fn moderator_create_wallet_for_user_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let wallet_token = create_new_wallet_for_owner_user( @@ -98,7 +98,7 @@ pub async fn moderator_create_wallet_for_user_handler( &mut transaction, ).await.map_err(|err| { error!("Error creating wallet for user {:?}: {:?}", user_token, err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; transaction @@ -106,7 +106,7 @@ pub async fn moderator_create_wallet_for_user_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(ModeratorCreateWalletForUserResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_get_wallet_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_get_wallet_handler.rs index 51ac688e97..dea488ffe5 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_get_wallet_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/wallets/moderator_get_wallet_handler.rs @@ -12,7 +12,7 @@ use artcraft_api_defs::moderation::wallets::moderator_get_wallet::{ use mysql_queries::queries::wallets::get_wallet_for_moderation::get_wallet_for_moderation; use tokens::tokens::wallets::WalletToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::web_utils::user_session::require_moderator::{require_moderator, UseDatabase}; use crate::state::server_state::ServerState; @@ -34,17 +34,17 @@ pub async fn moderator_get_wallet_handler( http_request: HttpRequest, path: Path, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let _user_session = require_moderator(&http_request, &server_state, UseDatabase::GrabNewConnection) .await - .map_err(|_| CommonWebError::NotAuthorized)?; + .map_err(|_| AdvancedCommonWebError::NotAuthorized)?; let maybe_wallet = get_wallet_for_moderation(&path.wallet_token, &server_state.mysql_pool) .await .map_err(|err| { warn!("moderator_get_wallet error: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_wallet_details = maybe_wallet.map(|wallet| ModeratorGetWalletDetails { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs index 2e236aa826..d9572cb275 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/image/omni_gen_image_models_handler.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use crate::configs::omni_gen::image_models::OMNI_GEN_IMAGE_MODELS_AND_PROVIDERS; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::state::server_state::ServerState; use actix_web::web::{Json, Query}; use actix_web::{web, HttpRequest}; @@ -25,7 +25,7 @@ pub async fn omni_gen_image_models_handler( _http_request: HttpRequest, _query: Query, _server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let response = (*OMNI_GEN_IMAGE_MODELS_AND_PROVIDERS).clone(); Ok(Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs index 6385520d58..772909cf3b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/omni_gen/models/video/omni_gen_video_models_handler.rs @@ -2,7 +2,6 @@ use std::sync::Arc; use crate::configs::omni_gen::video_models::OMNI_GEN_VIDEO_MODELS_AND_PROVIDERS; use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; -use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::http_server::session::lookup::user_session_feature_flags::UserSessionFeatureFlags; use crate::state::server_state::ServerState; use actix_web::web::{Json, Query}; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/create_prompt_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/create_prompt_handler.rs index e51fce94d5..3460928938 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/create_prompt_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/prompts/create_prompt_handler.rs @@ -5,7 +5,7 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::state::server_state::ServerState; use actix_web::web::Json; use actix_web::{web, HttpRequest}; @@ -33,7 +33,7 @@ pub async fn create_prompt_handler( http_request: HttpRequest, request: Json, server_state: web::Data>, -) -> Result, CommonWebError> +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() @@ -45,7 +45,7 @@ pub async fn create_prompt_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; //let maybe_avt_token = server_state @@ -56,7 +56,7 @@ pub async fn create_prompt_handler( .await .map_err(|err| { error!("Error inserting idempotency token: {:?}", err); - CommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) + AdvancedCommonWebError::BadInputWithSimpleMessage("invalid idempotency token".to_string()) })?; let ip_address = get_request_ip(&http_request); @@ -95,7 +95,7 @@ pub async fn create_prompt_handler( Ok(token) => token, Err(err) => { error!("error inserting prompt: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/get_session_subscription_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/get_session_subscription_handler.rs index 00b76fc782..df48310d56 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/get_session_subscription_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/get_session_subscription_handler.rs @@ -1,7 +1,7 @@ use std::fmt; use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::state::server_state::ServerState; use actix_web::web::{Json, Path}; @@ -44,14 +44,14 @@ pub async fn get_session_subscription_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result, CommonWebError> +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await .map_err(|err| { error!("Error acquiring MySQL connection: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_user_session = server_state @@ -60,12 +60,12 @@ pub async fn get_session_subscription_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let user_token = match maybe_user_session { Some(session) => session.user_token, - None => return Err(CommonWebError::NotAuthorized), + None => return Err(AdvancedCommonWebError::NotAuthorized), }; let maybe_subscription = find_subscription_for_owner_user_using_connection( @@ -74,7 +74,7 @@ pub async fn get_session_subscription_handler( &mut mysql_connection ).await.map_err(|err| { error!("Error looking up user's ({}) existing subscription: {:?}", &user_token, err); - CommonWebError::ServerError // NB: This was probably *our* fault. + AdvancedCommonWebError::server_error_with_message("uncaught server error") // NB: This was probably *our* fault. })?; Ok(Json(GetSessionSubscriptionResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/user_wallets/get_or_create_session_artcraft_wallet_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/user_wallets/get_or_create_session_artcraft_wallet_handler.rs index c99d854067..4d5068ffbe 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/user_wallets/get_or_create_session_artcraft_wallet_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/user_wallets/get_or_create_session_artcraft_wallet_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::state::server_state::ServerState; use actix_web::web::Json; use actix_web::{web, HttpRequest}; @@ -33,13 +33,13 @@ pub struct GetOrCreateSessionArtcraftWalletResponse { pub async fn get_or_create_session_artcraft_wallet_handler( http_request: HttpRequest, server_state: web::Data>, -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await .map_err(|err| { error!("Error acquiring MySQL connection: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let maybe_user_session = server_state @@ -48,12 +48,12 @@ pub async fn get_or_create_session_artcraft_wallet_handler( .await .map_err(|e| { warn!("Session checker error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let user_token = match maybe_user_session { Some(session) => session.user_token, - None => return Err(CommonWebError::NotAuthorized), + None => return Err(AdvancedCommonWebError::NotAuthorized), }; let maybe_wallet_token = find_primary_wallet_token_for_owner_using_connection( @@ -62,7 +62,7 @@ pub async fn get_or_create_session_artcraft_wallet_handler( &mut mysql_connection, ).await.map_err(|err| { error!("Error finding primary artcraft wallet for user {:?}: {:?}", user_token, err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; if let Some(wallet_token) = maybe_wallet_token { @@ -77,7 +77,7 @@ pub async fn get_or_create_session_artcraft_wallet_handler( .await .map_err(|err| { error!("Error starting MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; let wallet_token = create_new_artcraft_wallet_for_owner_user( @@ -85,7 +85,7 @@ pub async fn get_or_create_session_artcraft_wallet_handler( &mut transaction, ).await.map_err(|err| { error!("Error creating artcraft wallet for user {:?}: {:?}", user_token, err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; transaction @@ -93,7 +93,7 @@ pub async fn get_or_create_session_artcraft_wallet_handler( .await .map_err(|err| { error!("Error committing MySQL transaction: {:?}", err); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; Ok(Json(GetOrCreateSessionArtcraftWalletResponse { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/web_referrals/log_web_referral_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/web_referrals/log_web_referral_handler.rs index e428a3e0b7..39e4f9de6f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/web_referrals/log_web_referral_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/web_referrals/log_web_referral_handler.rs @@ -9,7 +9,7 @@ use http_server_common::request::get_request_ip::get_request_ip; use mysql_queries::queries::web_referrals::insert_web_referral::{insert_web_referral, InsertWebReferralArgs}; use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::state::server_state::ServerState; /// Record a web referral for analytics tracking. @@ -26,7 +26,7 @@ pub async fn log_web_referral_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data>, -) -> Result { +) -> Result { // 1. Try to get the referral URL from the request body, falling back to the Referer header. let referral_url = request.maybe_referral_url.as_deref() @@ -82,7 +82,7 @@ pub async fn log_web_referral_handler( .make_new_cookie_with_apriori_token(&token) .map_err(|e| { warn!("AVT cookie creation error: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; (token, Some(cookie)) } @@ -106,7 +106,7 @@ pub async fn log_web_referral_handler( maybe_anonymous_visitor_token: Some(&avt_token_str), }).await.map_err(|e| { warn!("Error inserting web referral: {:?}", e); - CommonWebError::ServerError + AdvancedCommonWebError::server_error_with_message("uncaught server error") })?; info!("Recorded web referral: {}", referral_url); @@ -117,7 +117,7 @@ pub async fn log_web_referral_handler( }; let body = serde_json::to_string(&response) - .map_err(|_| CommonWebError::ServerError)?; + .map_err(AdvancedCommonWebError::from_error)?; let mut response_builder = HttpResponse::Ok(); @@ -130,13 +130,13 @@ pub async fn log_web_referral_handler( .body(body)) } -fn ok_response() -> Result { +fn ok_response() -> Result { let response = LogWebReferralResponse { success: true, }; let body = serde_json::to_string(&response) - .map_err(|_| CommonWebError::ServerError)?; + .map_err(AdvancedCommonWebError::from_error)?; Ok(HttpResponse::Ok() .content_type("application/json") diff --git a/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/error_alerting_middleware.rs b/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/error_alerting_middleware.rs index 49d9dbbd4e..ad6e11d754 100644 --- a/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/error_alerting_middleware.rs +++ b/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/error_alerting_middleware.rs @@ -7,11 +7,9 @@ use actix_web::Error; use pager::client::pager::Pager; use super::handlers::check_advanced_common_web_error::check_advanced_common_web_error; -use super::handlers::check_common_web_error::check_common_web_error; use super::handlers::check_status_code_fallback::check_status_code_fallback; use super::request_debugging_metadata::RequestDebuggingMetadata; use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; -use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::state::flags::paging_flags::PagingFlags; // ======================== Transform (factory) ======================== @@ -19,7 +17,7 @@ use crate::state::flags::paging_flags::PagingFlags; /// Middleware that intercepts error responses and enqueues pager alerts. /// /// Inspects errors in two ways: -/// 1. **Typed error matching** via downcast (e.g. `CommonWebError::ServerError`) +/// 1. **Typed error matching** via downcast (e.g. `AdvancedCommonWebError::UncaughtServerError`) /// 2. **Status code fallback** for untyped 500s that slip through /// /// Both `PagingFlags.is_paging_enabled` and `PagingFlags.is_paging_for_500s_enabled` @@ -132,12 +130,6 @@ fn check_ok_response_for_alerts( return; } } - - if let Some(common_err) = err.as_error::() { - if check_common_web_error(pager, method, path, metadata, common_err) { - return; - } - } } // --- Status code fallback --- @@ -160,12 +152,6 @@ fn check_err_for_alerts( } } - if let Some(common_err) = err.as_error::() { - if check_common_web_error(pager, method, path, metadata, common_err) { - return; - } - } - // --- Status code fallback --- let status = err.as_response_error().status_code(); check_status_code_fallback(pager, method, path, metadata, status.as_u16()); diff --git a/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/handlers/check_common_web_error.rs b/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/handlers/check_common_web_error.rs deleted file mode 100644 index 8696112f37..0000000000 --- a/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/handlers/check_common_web_error.rs +++ /dev/null @@ -1,57 +0,0 @@ -use log::{debug, warn}; - -use pager::client::pager::Pager; -use pager::notification::notification_details_builder::NotificationDetailsBuilder; -use pager::notification::notification_urgency::NotificationUrgency; - -use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::http_server::middleware::error_alerting_middleware::request_debugging_metadata::RequestDebuggingMetadata; - -/// Check `CommonWebError` and alert on server errors. -/// Returns `true` if the error was handled (alerted or intentionally skipped). -pub(crate) fn check_common_web_error( - pager: &Pager, - method: &str, - path: &str, - metadata: &RequestDebuggingMetadata, - error: &CommonWebError, -) -> bool { - match error { - CommonWebError::ServerError => { - let summary = format!("CommonWebError::ServerError on {} {}", method, path); - let description = format!( - "A CommonWebError::ServerError was returned.\n\n\ - Endpoint: {} {}\n\ - Error: {:?}\n\ - Time: {}", - method, path, error, - chrono::Utc::now().format("%Y-%m-%d %H:%M:%S UTC"), - ); - - let notification = NotificationDetailsBuilder::from_title(summary) - .set_description(Some(description)) - .set_urgency(Some(NotificationUrgency::Medium)) - .set_http_method(Some(method.to_string())) - .set_http_path(Some(path.to_string())) - .set_http_status_code(Some(500)) - .set_request_ip_address(metadata.request_ip_address.clone()) - .set_avt_cookie_token(metadata.avt_cookie_token.clone()) - .set_session_token(metadata.session_token.clone()) - .set_session_user_token(metadata.session_user_token.clone()) - .build(); - - if let Err(err) = pager.enqueue_page(notification) { - warn!("Error alerting middleware: failed to enqueue page: {:?}", err); - } else { - debug!("Error alerting middleware: enqueued alert for CommonWebError::ServerError"); - } - - true - } - // Don't alert on client errors (400, 401, 404, 402). - CommonWebError::BadInputWithSimpleMessage(_) => true, - CommonWebError::NotFound => true, - CommonWebError::NotAuthorized => true, - CommonWebError::PaymentRequired => true, - } -} diff --git a/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/handlers/mod.rs b/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/handlers/mod.rs index 7db922ca54..d866aa7262 100644 --- a/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/handlers/mod.rs +++ b/crates/service/web/storyteller_web/src/http_server/middleware/error_alerting_middleware/handlers/mod.rs @@ -1,3 +1,2 @@ pub(super) mod check_advanced_common_web_error; -pub(super) mod check_common_web_error; pub(super) mod check_status_code_fallback; diff --git a/crates/service/web/storyteller_web/src/util/lookup/fetch_all_required_media_files.rs b/crates/service/web/storyteller_web/src/util/lookup/fetch_all_required_media_files.rs index 8808f6009d..8c16fe9e2e 100644 --- a/crates/service/web/storyteller_web/src/util/lookup/fetch_all_required_media_files.rs +++ b/crates/service/web/storyteller_web/src/util/lookup/fetch_all_required_media_files.rs @@ -1,4 +1,4 @@ -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use log::{error, warn}; use mysql_queries::queries::media_files::get::batch_get_media_files_by_tokens::{batch_get_media_files_by_tokens_with_connection, MediaFilesByTokensRecord}; use sqlx::pool::PoolConnection; @@ -11,7 +11,7 @@ const CAN_SEE_DELETED: bool = false; pub async fn fetch_all_required_media_files( mysql_connection: &mut PoolConnection, media_file_tokens: &[MediaFileToken], -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { let result = batch_get_media_files_by_tokens_with_connection( mysql_connection, &media_file_tokens, @@ -22,13 +22,13 @@ pub async fn fetch_all_required_media_files( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; if media_files.len() != media_file_tokens.len() { warn!("Wrong number of media files returned for tokens: {} found for {} tokens", media_files.len(), media_file_tokens.len()); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}", media_files.len(), media_file_tokens.len()))); } diff --git a/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_map.rs b/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_map.rs index 48306c5219..a2171270c2 100644 --- a/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_map.rs +++ b/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_map.rs @@ -1,4 +1,4 @@ -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; use actix_web::HttpRequest; @@ -18,7 +18,7 @@ pub async fn lookup_image_urls_as_map( mysql_connection: &mut PoolConnection, server_environment: ServerEnvironment, tokens: &[MediaFileToken], -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { const CAN_SEE_DELETED: bool = false; let result = batch_get_media_files_by_tokens_with_connection( @@ -31,7 +31,7 @@ pub async fn lookup_image_urls_as_map( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -45,7 +45,7 @@ pub async fn lookup_image_urls_as_map( .cloned() .collect::>(); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}, in original: {:?}, req {:?}, ret {:?}", media_files.len(), tokens.len(), diff, requested, returned))); } diff --git a/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_optional_list.rs b/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_optional_list.rs index 99bade93a7..bc3e6ce2ed 100644 --- a/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_optional_list.rs +++ b/crates/service/web/storyteller_web/src/util/lookup/lookup_image_urls_as_optional_list.rs @@ -1,4 +1,4 @@ -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; use actix_web::HttpRequest; @@ -18,7 +18,7 @@ pub async fn lookup_image_urls_as_optional_list( mysql_connection: &mut PoolConnection, server_environment: ServerEnvironment, tokens: &[MediaFileToken], -) -> Result>, CommonWebError> { +) -> Result>, AdvancedCommonWebError> { const CAN_SEE_DELETED: bool = false; let result = batch_get_media_files_by_tokens_with_connection( @@ -31,7 +31,7 @@ pub async fn lookup_image_urls_as_optional_list( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -45,7 +45,7 @@ pub async fn lookup_image_urls_as_optional_list( .cloned() .collect::>(); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}, in original: {:?}, req {:?}, ret {:?}", media_files.len(), tokens.len(), diff, requested, returned))); } diff --git a/crates/service/web/storyteller_web/src/util/lookup/lookup_media_file_urls_as_map.rs b/crates/service/web/storyteller_web/src/util/lookup/lookup_media_file_urls_as_map.rs index 8e516f243d..b7f93b469a 100644 --- a/crates/service/web/storyteller_web/src/util/lookup/lookup_media_file_urls_as_map.rs +++ b/crates/service/web/storyteller_web/src/util/lookup/lookup_media_file_urls_as_map.rs @@ -1,4 +1,4 @@ -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; use actix_web::HttpRequest; @@ -19,7 +19,7 @@ pub async fn lookup_media_file_urls_as_map( mysql_connection: &mut PoolConnection, server_environment: ServerEnvironment, tokens: &[MediaFileToken], -) -> Result, CommonWebError> { +) -> Result, AdvancedCommonWebError> { const CAN_SEE_DELETED: bool = false; let result = batch_get_media_files_by_tokens_with_connection( @@ -32,7 +32,7 @@ pub async fn lookup_media_file_urls_as_map( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -46,7 +46,7 @@ pub async fn lookup_media_file_urls_as_map( .cloned() .collect::>(); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}, in original: {:?}, req {:?}, ret {:?}", media_files.len(), tokens.len(), diff, requested, returned))); } diff --git a/crates/service/web/storyteller_web/src/util/lookup/lookup_media_files_as_cdn_url_list_and_map.rs b/crates/service/web/storyteller_web/src/util/lookup/lookup_media_files_as_cdn_url_list_and_map.rs index af67066bf1..523b8b873e 100644 --- a/crates/service/web/storyteller_web/src/util/lookup/lookup_media_files_as_cdn_url_list_and_map.rs +++ b/crates/service/web/storyteller_web/src/util/lookup/lookup_media_files_as_cdn_url_list_and_map.rs @@ -10,7 +10,7 @@ use sqlx::pool::PoolConnection; use sqlx::MySql; use tokens::tokens::media_files::MediaFileToken; -use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; @@ -28,7 +28,7 @@ pub async fn lookup_media_files_as_cdn_url_list_and_map( mysql_connection: &mut PoolConnection, server_environment: ServerEnvironment, tokens: &[MediaFileToken], -) -> Result { +) -> Result { const CAN_SEE_DELETED: bool = false; if tokens.is_empty() { @@ -48,7 +48,7 @@ pub async fn lookup_media_files_as_cdn_url_list_and_map( Ok(files) => files, Err(err) => { error!("Error getting media files by tokens: {:?}", err); - return Err(CommonWebError::ServerError); + return Err(AdvancedCommonWebError::server_error_with_message("uncaught server error")); } }; @@ -62,7 +62,7 @@ pub async fn lookup_media_files_as_cdn_url_list_and_map( .cloned() .collect::>(); - return Err(CommonWebError::BadInputWithSimpleMessage( + return Err(AdvancedCommonWebError::BadInputWithSimpleMessage( format!("Not all media files could be found. Media files found: {}, tokens provided: {}, in original: {:?}, req {:?}, ret {:?}", media_files.len(), tokens.len(), diff, requested, returned))); }