diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_browser_session_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_browser_session_handler.rs index f7e6d91307..b6187ff779 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_browser_session_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/analytics/log_browser_session_handler.rs @@ -89,7 +89,7 @@ pub async fn log_browser_session_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data>, -) -> Result +) -> Result, LogBrowserSessionError> { let mut mysql_connection = server_state.mysql_pool .acquire() @@ -131,11 +131,6 @@ pub async fn log_browser_session_handler( log_token: token, }; - let body = serde_json::to_string(&response) - .map_err(|_e| LogBrowserSessionError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/create_beta_keys_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/create_beta_keys_handler.rs index c80cf8bfc5..40ddfaf5ed 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/create_beta_keys_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/create_beta_keys_handler.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; @@ -58,7 +58,7 @@ pub async fn create_beta_keys_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data>, -) -> Result +) -> Result, CommonWebError> { let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?; @@ -106,11 +106,6 @@ pub async fn create_beta_keys_handler( beta_keys, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_distributed_flag_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_distributed_flag_handler.rs index eae701228a..e5253b9a8f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_distributed_flag_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_distributed_flag_handler.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; @@ -56,7 +56,7 @@ pub async fn edit_beta_key_distributed_flag_handler( request: web::Json, path: Path, server_state: web::Data>, -) -> Result +) -> Result, CommonWebError> { let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?; @@ -71,10 +71,5 @@ pub async fn edit_beta_key_distributed_flag_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_note_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_note_handler.rs index 378d2daa12..67525df93d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_note_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/edit_beta_key_note_handler.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; @@ -55,7 +55,7 @@ pub async fn edit_beta_key_note_handler( request: web::Json, path: Path, server_state: web::Data>, -) -> Result +) -> Result, CommonWebError> { let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?; @@ -75,10 +75,5 @@ pub async fn edit_beta_key_note_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/list_beta_keys_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/list_beta_keys_handler.rs index 89cb21b91f..9d4de4c760 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/list_beta_keys_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/list_beta_keys_handler.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Query; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; use utoipa::{IntoParams, ToSchema}; @@ -107,7 +107,7 @@ pub async fn list_beta_keys_handler( http_request: HttpRequest, query: Query, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let user_session = require_user_session(&http_request, &server_state.session_checker, &server_state.mysql_pool) .await?; @@ -212,10 +212,5 @@ pub async fn list_beta_keys_handler( } }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/redeem_beta_key_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/redeem_beta_key_handler.rs index f23c536825..e23361b3ea 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/redeem_beta_key_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/beta_keys/redeem_beta_key_handler.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; @@ -50,7 +50,7 @@ pub async fn redeem_beta_key_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data>, -) -> Result +) -> Result, CommonWebError> { let user_session = require_user_session(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?; @@ -90,12 +90,7 @@ pub async fn redeem_beta_key_handler( success: true, }; - // `?` via the `From` impl on CommonWebError. - let body = serde_json::to_string(&response)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } async fn enroll_in_studio( diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/comments/create_comment_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/comments/create_comment_handler.rs index 33cdf9b035..1085449ca9 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/comments/create_comment_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/comments/create_comment_handler.rs @@ -97,7 +97,7 @@ pub async fn create_comment_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data>, -) -> Result +) -> Result, CreateCommentError> { // NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from // querying the database for entity existence, this is the next best way to prevent incorrect comment @@ -188,10 +188,5 @@ pub async fn create_comment_handler( comment_token, }; - let body = serde_json::to_string(&response) - .map_err(|_e| CreateCommentError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/comments/delete_comment_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/comments/delete_comment_handler.rs index 931c5d86eb..ac7fef6681 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/comments/delete_comment_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/comments/delete_comment_handler.rs @@ -19,7 +19,6 @@ use tokens::tokens::comments::CommentToken; use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; /// For the URL PathInfo @@ -92,7 +91,7 @@ pub async fn delete_comment_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, DeleteCommentError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await @@ -166,5 +165,5 @@ pub async fn delete_comment_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/comments/list_comments_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/comments/list_comments_handler.rs index 0488150846..4b6b4632f7 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/comments/list_comments_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/comments/list_comments_handler.rs @@ -129,7 +129,7 @@ pub async fn list_comments_handler( _http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result +) -> Result, ListCommentsError> { let entity_token = CommentEntityToken::from_entity_type_and_token( path.entity_type, &path.entity_token); @@ -174,10 +174,5 @@ pub async fn list_comments_handler( .collect(), }; - let body = serde_json::to_string(&response) - .map_err(|_e| ListCommentsError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/enqueue_generic_download.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/enqueue_generic_download.rs index 87404114df..1e8df920e7 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/enqueue_generic_download.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/enqueue_generic_download.rs @@ -70,7 +70,7 @@ impl fmt::Display for EnqueueGenericDownloadError { pub async fn enqueue_generic_download_handler( http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, EnqueueGenericDownloadError> { if let Err(_err) = server_state.redis_rate_limiters.model_upload.rate_limit_request(&http_request).await { return Err(EnqueueGenericDownloadError::RateLimited); @@ -150,10 +150,5 @@ pub async fn enqueue_generic_download_handler( job_token: job_token.to_string(), }; - let body = serde_json::to_string(&response) - .map_err(|e| EnqueueGenericDownloadError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/get_generic_upload_job_status.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/get_generic_upload_job_status.rs index f3fb03978d..ab8b2b1a10 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/get_generic_upload_job_status.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/download_job/get_generic_upload_job_status.rs @@ -87,7 +87,7 @@ impl fmt::Display for GetGenericDownloadJobStatusError { pub async fn get_generic_download_job_status_handler( http_request: HttpRequest, path: Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, GetGenericDownloadJobStatusError> { let maybe_job_status = get_generic_download_job_status( &path.token, @@ -142,10 +142,5 @@ pub async fn get_generic_download_job_status_handler( state: model_for_response, }; - let body = serde_json::to_string(&response) - .map_err(|e| GetGenericDownloadJobStatusError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/create_featured_item_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/create_featured_item_handler.rs index f631e36c77..8012b82527 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/create_featured_item_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/create_featured_item_handler.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{error, warn}; use sqlx::Acquire; use utoipa::ToSchema; @@ -52,7 +52,7 @@ pub async fn create_featured_item_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data>, -) -> Result +) -> Result, CommonWebError> { // NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from // querying the database for entity existence, this is the next best way to prevent incorrect comment @@ -163,10 +163,5 @@ pub async fn create_featured_item_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/delete_featured_item_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/delete_featured_item_handler.rs index 4ed891afb0..93e998e8b5 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/delete_featured_item_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/featured_items/delete_featured_item_handler.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{error, warn}; use sqlx::Acquire; use utoipa::ToSchema; @@ -22,7 +22,6 @@ use tokens::tokens::users::UserToken; use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; #[derive(Deserialize, ToSchema)] @@ -49,7 +48,7 @@ pub async fn delete_featured_item_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { // NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from // querying the database for entity existence, this is the next best way to prevent incorrect comment @@ -138,5 +137,5 @@ pub async fn delete_featured_item_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/admin/kill_inference_jobs_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/admin/kill_inference_jobs_handler.rs index fe57f09637..ce33ea2646 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/admin/kill_inference_jobs_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/admin/kill_inference_jobs_handler.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; @@ -53,7 +53,7 @@ pub struct KillInferenceJobsResponse { pub async fn kill_generic_inference_jobs_handler( http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -106,10 +106,5 @@ pub async fn kill_generic_inference_jobs_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/terminate_inference_job_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/terminate_inference_job_handler.rs index 0e230ebca9..e04f572f44 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/terminate_inference_job_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/delete/terminate_inference_job_handler.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpMessage, HttpRequest, HttpResponse}; +use actix_web::{web, HttpMessage, HttpRequest}; use log::{error, warn}; use utoipa::ToSchema; @@ -47,7 +47,7 @@ pub struct TerminateInferenceJobSuccessResponse { pub async fn terminate_inference_job_handler( http_request: HttpRequest, path: Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let mut mysql_connection = server_state.mysql_pool.acquire() .await @@ -105,13 +105,5 @@ pub async fn terminate_inference_job_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(|e| { - error!("error returning response: {:?}", e); - CommonWebError::from_error(e) - })?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs index 1f9dfd3f92..5ad95dc0c4 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/change_media_file_visibility_handler.rs @@ -1,17 +1,13 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; -use http_server_common::response::response_success_helpers::{simple_json_success, SimpleGenericJsonSuccess}; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; +use http_server_common::response::response_success_helpers::SimpleGenericJsonSuccess; use mysql_queries::queries::media_files::edit::update_media_file_visibility::{update_media_file_visibility, UpdateMediaFileArgs}; use mysql_queries::queries::media_files::get::get_media_file::get_media_file; @@ -48,7 +44,7 @@ pub async fn change_media_file_visibility_handler( http_request: HttpRequest, path: Path, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -127,5 +123,5 @@ pub async fn change_media_file_visibility_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs index 422d7eef62..fab1485dda 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/rename_media_file_handler.rs @@ -1,19 +1,14 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; use crate::http_server::common_requests::media_file_token_path_info::MediaFileTokenPathInfo; use crate::http_server::common_responses::common_web_error::CommonWebError; use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::media_files::edit::rename_media_file::rename_media_file; use mysql_queries::queries::media_files::get::get_media_file::get_media_file; @@ -49,7 +44,7 @@ pub async fn rename_media_file_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result{ +) -> Result, CommonWebError>{ let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -104,5 +99,5 @@ pub async fn rename_media_file_handler( CommonWebError::from_anyhow_error(err) })?; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs index b2101d9196..c8445edc77 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/set_media_file_cover_image_handler.rs @@ -1,15 +1,11 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{info, warn}; use utoipa::ToSchema; use enums::by_table::media_files::media_file_type::MediaFileType; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::media_files::edit::set_media_file_cover_image::{set_media_file_cover_image, UpdateArgs}; use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use tokens::tokens::media_files::MediaFileToken; @@ -17,7 +13,6 @@ use tokens::tokens::media_files::MediaFileToken; use crate::http_server::common_requests::media_file_token_path_info::MediaFileTokenPathInfo; use crate::http_server::common_responses::common_web_error::CommonWebError; use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; #[derive(Deserialize, ToSchema)] @@ -55,7 +50,7 @@ pub async fn set_media_file_cover_image_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result{ +) -> Result, CommonWebError>{ let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -157,5 +152,5 @@ pub async fn set_media_file_cover_image_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs index affd7a55b2..e183a44d37 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/edit/update_media_file_handler.rs @@ -1,16 +1,11 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; -use http_server_common::response::response_success_helpers::simple_json_success; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::media_files::edit::update_media_file_visibility::{update_media_file_visibility, UpdateMediaFileArgs}; use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use tokens::tokens::media_files::MediaFileToken; @@ -42,7 +37,7 @@ pub async fn update_media_file_handler( http_request: HttpRequest, path: Path, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -121,5 +116,5 @@ pub async fn update_media_file_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(UpdateMediaFileResponse { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs index ec7ab084bc..8ac66ae171 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/info/moderator_token_info_handler.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use serde::Serialize; use sqlx::MySqlPool; @@ -58,7 +58,7 @@ pub async fn moderator_get_token_info_handler( path: Path, http_request: HttpRequest, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?; @@ -75,12 +75,7 @@ pub async fn moderator_get_token_info_handler( maybe_payload: maybe_result, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } const LEGACY_USER_TOKEN_PREFIX : &str = "U:"; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/add_ip_ban.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/add_ip_ban.rs index aaf371dce9..4f087258d5 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/add_ip_ban.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/add_ip_ban.rs @@ -3,15 +3,15 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{info, warn}; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use mysql_queries::queries::ip_bans::upsert_ip_ban::{upsert_ip_ban, UpsertIpBanArgs}; use user_input_common::validate_user_provided_ip_address::validate_user_provided_ip_address; use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; #[derive(Deserialize)] @@ -25,7 +25,7 @@ pub async fn add_ip_ban_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -70,5 +70,5 @@ pub async fn add_ip_ban_handler( CommonWebError::from_anyhow_error(err) })?; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/delete_ip_ban.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/delete_ip_ban.rs index 5cbe146b6a..47a46afc5a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/delete_ip_ban.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/delete_ip_ban.rs @@ -3,15 +3,15 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use derive_more::Display; use log::{info, warn}; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use mysql_queries::queries::ip_bans::toggle_ip_ban::{toggle_ip_ban, IpBanToggleState}; use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; /// For the URL PathInfo @@ -29,7 +29,7 @@ pub async fn delete_ip_ban_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -77,5 +77,5 @@ pub async fn delete_ip_ban_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/get_ip_ban.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/get_ip_ban.rs index 260edd35b3..521db56d99 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/get_ip_ban.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/get_ip_ban.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use derive_more::Display; use log::{error, warn}; @@ -42,7 +42,7 @@ pub async fn get_ip_ban_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -97,10 +97,5 @@ pub async fn get_ip_ban_handler( ip_address_ban: result, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/list_ip_bans.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/list_ip_bans.rs index 29fa9bccf6..c63c3b4505 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/list_ip_bans.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/ip_bans/list_ip_bans.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::{error, warn}; @@ -34,7 +34,7 @@ pub struct IpBanRecordForList { pub async fn list_ip_bans_handler( http_request: HttpRequest, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -85,10 +85,5 @@ pub async fn list_ip_bans_handler( ip_address_bans: results, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_tts_inference_queue_count.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_tts_inference_queue_count.rs index 753082dc5c..dc4d39df3f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_tts_inference_queue_count.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_tts_inference_queue_count.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use mysql_queries::queries::tts::tts_inference_jobs::get_pending_tts_inference_job_detailed_stats::{get_pending_tts_inference_job_detailed_stats, PendingCountResult}; @@ -34,7 +34,7 @@ pub struct GetTtsInferenceQueueCountResponse { pub async fn get_tts_inference_queue_count_handler( http_request: HttpRequest, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -85,10 +85,5 @@ pub async fn get_tts_inference_queue_count_handler( attempt_failed_count: result.attempt_failed_count, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_w2l_inference_queue_count.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_w2l_inference_queue_count.rs index b76efeaf17..149994eeda 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_w2l_inference_queue_count.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/get_w2l_inference_queue_count.rs @@ -47,7 +47,7 @@ impl fmt::Display for GetW2lInferenceQueueCountError { pub async fn get_w2l_inference_queue_count_handler( http_request: HttpRequest, server_state: web::Data> -) -> Result { +) -> Result, GetW2lInferenceQueueCountError> { let maybe_user_session = server_state .session_checker @@ -92,10 +92,5 @@ pub async fn get_w2l_inference_queue_count_handler( seconds_since_first: result.seconds_since_first, }; - let body = serde_json::to_string(&response) - .map_err(|e| GetW2lInferenceQueueCountError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/kill_tts_inference_jobs.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/kill_tts_inference_jobs.rs index bca96c4f9c..ab81e8ab06 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/kill_tts_inference_jobs.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/kill_tts_inference_jobs.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{error, warn}; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; @@ -46,7 +46,7 @@ pub struct KillTtsInferenceJobsResponse { pub async fn kill_tts_inference_jobs_handler( http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -88,10 +88,5 @@ pub async fn kill_tts_inference_jobs_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user_feature_flags/moderator_edit_user_feature_flags_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user_feature_flags/moderator_edit_user_feature_flags_handler.rs index 6f5ee84308..e22e076df1 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user_feature_flags/moderator_edit_user_feature_flags_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/user_feature_flags/moderator_edit_user_feature_flags_handler.rs @@ -6,8 +6,8 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::web::{Data, Json, Path}; -use actix_web::{HttpRequest, HttpResponse}; +use actix_web::web::{self, Data, Json, Path}; +use actix_web::HttpRequest; use log::warn; use redis::{Client, Commands}; use sqlx::Acquire; @@ -26,7 +26,6 @@ use tokens::tokens::users::UserToken; use crate::http_server::session::lookup::user_session_feature_flags::UserSessionFeatureFlags; use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::http_server::web_utils::user_session::require_moderator::require_moderator; use crate::state::server_state::ServerState; use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; @@ -85,7 +84,7 @@ pub async fn moderator_edit_user_feature_flags_handler( request: Json, server_state: Data>, redis_pool: Data>, -) -> Result { +) -> Result, CommonWebError> { let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?; @@ -190,5 +189,5 @@ pub async fn moderator_edit_user_feature_flags_handler( let _r: Result, _> = redis.del(&cache_key); } - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/unsubscribe_reason.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/unsubscribe_reason.rs index 91649d02bd..d33a6c39b6 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/unsubscribe_reason.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/subscriptions/unsubscribe_reason.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse, ResponseError}; +use actix_web::{web, HttpRequest}; use log::{error, info}; use http_server_common::request::get_request_ip::get_request_ip; @@ -32,7 +32,7 @@ pub struct SetUnsubscribeReasonResponse { pub async fn set_unsubscribe_reason_handler( http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let mut mysql_connection = server_state.mysql_pool.acquire() .await @@ -73,10 +73,5 @@ pub async fn set_unsubscribe_reason_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(|_e| CommonWebError::from_error(_e))?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/trending/list_trending_tts_models.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/trending/list_trending_tts_models.rs index c96031fc9f..8312f53d5b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/trending/list_trending_tts_models.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/trending/list_trending_tts_models.rs @@ -13,7 +13,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::error; use enums::by_table::trending_model_analytics::window_name::WindowName; @@ -51,7 +51,7 @@ pub type WindowTrends = HashMap>; pub async fn list_trending_tts_models_handler( _http_request: HttpRequest, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { // TODO: Cache the outputs! @@ -112,10 +112,5 @@ pub async fn list_trending_tts_models_handler( top_trending_by_language_code, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_model.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_model.rs index 45a594e4b3..a4559816d5 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_model.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_model.rs @@ -4,9 +4,10 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use http_server_common::request::get_request_ip::get_request_ip; use mysql_queries::queries::tts::tts_models::delete_tts_model_various_scopes::delete_tts_model_as_mod; use mysql_queries::queries::tts::tts_models::delete_tts_model_various_scopes::delete_tts_model_as_user; @@ -16,7 +17,6 @@ use mysql_queries::queries::tts::tts_models::get_tts_model::get_tts_model_by_tok use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; use crate::http_server::common_responses::common_web_error::CommonWebError; -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; use crate::util::delete_role_disambiguation::DeleteRole; @@ -39,7 +39,7 @@ pub async fn delete_tts_model_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { // NB: Disable if we've migrated to model_weights if server_state.flags.switch_tts_to_model_weights { warn!("Migration to model_weights for tts. Cannot delete old model."); @@ -154,5 +154,5 @@ pub async fn delete_tts_model_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_result.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_result.rs index abad0907bf..d71b6f1907 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_result.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/delete_tts_result.rs @@ -4,9 +4,10 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use mysql_queries::queries::tts::tts_results::delete_tts_result_various_scopes::delete_tts_inference_result_as_mod; use mysql_queries::queries::tts::tts_results::delete_tts_result_various_scopes::delete_tts_inference_result_as_user; use mysql_queries::queries::tts::tts_results::delete_tts_result_various_scopes::undelete_tts_inference_result_as_mod; @@ -15,7 +16,6 @@ use mysql_queries::queries::tts::tts_results::query_tts_result::select_tts_resul use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; use crate::http_server::common_responses::common_web_error::CommonWebError; -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; use crate::util::delete_role_disambiguation::DeleteRole; @@ -38,7 +38,7 @@ pub async fn delete_tts_inference_result_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -141,5 +141,5 @@ pub async fn delete_tts_inference_result_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_model.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_model.rs index 3f26e6f4cd..44ab796897 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_model.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_model.rs @@ -6,15 +6,15 @@ use std::sync::Arc; use actix_web::web::{Json, Path}; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use language_tags::LanguageTag; use log::{error, info, warn}; use sqlx::MySqlPool; use crate::configs::supported_languages_for_models::get_canonicalized_language_tag_for_model; use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; use markdown::simple_markdown_to_html::simple_markdown_to_html; @@ -92,7 +92,7 @@ pub async fn edit_tts_model_handler( http_request: HttpRequest, path: Path, request: Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { // NB: Disable if we've migrated to model_weights if server_state.flags.switch_tts_to_model_weights { @@ -300,7 +300,7 @@ pub async fn edit_tts_model_handler( let _r = redis_ttl_cache.delete_from_cache(&cache_key).ok(); } - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } async fn update_mod_details( diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_result.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_result.rs index b82629cd56..abecf5900b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_result.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/edit_tts_result.rs @@ -6,16 +6,16 @@ use std::sync::Arc; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{error, warn}; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; use mysql_queries::queries::tts::tts_results::edit_tts_result::{edit_tts_result, CreatorOrModFields, EditTtsResultArgs}; use mysql_queries::queries::tts::tts_results::query_tts_result::select_tts_result_by_token; use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; /// For the URL PathInfo @@ -34,7 +34,7 @@ pub async fn edit_tts_inference_result_handler( http_request: HttpRequest, path: Path, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -120,5 +120,5 @@ pub async fn edit_tts_inference_result_handler( CommonWebError::from_anyhow_error(err) })?; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_upload_tts_model.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_upload_tts_model.rs index 3434a89b6c..6dc76ba192 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_upload_tts_model.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_upload_tts_model.rs @@ -5,7 +5,7 @@ use std::sync::Arc; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use crate::http_server::validations::validate_model_title::validate_model_title; @@ -71,8 +71,8 @@ pub async fn upload_tts_model_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data> -) -> Result { - +) -> Result, CommonWebError> { + if server_state.flags.disable_tts { return Err(CommonWebError::TooManyRequests); } @@ -186,18 +186,11 @@ pub async fn upload_tts_model_handler( CommonWebError::from_anyhow_error(e) })?; - let response = UploadTtsModelSuccessResponse { + Ok(web::Json(UploadTtsModelSuccessResponse { success: true, job_token: job_token.to_string(), job_type: download_job_type, - }; - - let body = serde_json::to_string(&response) - ?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + })) } fn validate_idempotency_token(token: &str) -> Result<(), String> { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_inference_job_status.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_inference_job_status.rs index b6a2260fa3..50a4a724f1 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_inference_job_status.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_inference_job_status.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpMessage, HttpRequest, HttpResponse}; +use actix_web::{web, HttpMessage, HttpRequest}; use chrono::{DateTime, Utc}; use log::error; use redis::{Commands, RedisResult}; @@ -61,7 +61,7 @@ pub struct GetTtsInferenceStatusSuccessResponse { pub async fn get_tts_inference_job_status_handler( http_request: HttpRequest, path: Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let job_token = path.into_inner().token; @@ -80,20 +80,10 @@ pub async fn get_tts_inference_job_status_handler( legacy_lookup(&job_token, &server_state).await? }; - let response = GetTtsInferenceStatusSuccessResponse { + Ok(web::Json(GetTtsInferenceStatusSuccessResponse { success: true, state: record_for_response, - }; - - let body = serde_json::to_string(&response) - .map_err(|e| { - error!("error returning response: {:?}", e); - CommonWebError::from_error(e) - })?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + })) } async fn legacy_lookup(job_token: &str, server_state: &ServerState) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model.rs index 00824be2c0..01c5d7e670 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; @@ -152,7 +152,7 @@ pub struct TtsModelModeratorFieldInfo { pub async fn get_tts_model_handler( http_request: HttpRequest, path: Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let mut mysql_connection = server_state.mysql_pool.acquire() .await @@ -327,10 +327,5 @@ pub async fn get_tts_model_handler( }, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model_use_count.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model_use_count.rs index eefae36524..d6d0bc2030 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model_use_count.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_model_use_count.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpMessage, HttpRequest, HttpResponse}; +use actix_web::{web, HttpMessage, HttpRequest}; use derive_more::Display; use log::warn; use redis::Commands; @@ -28,7 +28,7 @@ pub struct GetTtsModelUseCountSuccessResponse { pub async fn get_tts_model_use_count_handler( http_request: HttpRequest, path: Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let mut redis = server_state.redis_pool .get() @@ -45,15 +45,8 @@ pub async fn get_tts_model_use_count_handler( CommonWebError::from_error(e) })?; - let response = GetTtsModelUseCountSuccessResponse { + Ok(web::Json(GetTtsModelUseCountSuccessResponse { success: true, count, - }; - - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_result.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_result.rs index bd7a0283ad..277989210a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_result.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_result.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpMessage, HttpRequest, HttpResponse}; +use actix_web::{web, HttpMessage, HttpRequest}; use log::warn; use mysql_queries::queries::tts::tts_results::query_tts_result::select_tts_result_by_token; @@ -29,7 +29,7 @@ pub struct GetTtsResultSuccessResponse { pub async fn get_tts_inference_result_handler( http_request: HttpRequest, path: Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -80,15 +80,8 @@ pub async fn get_tts_inference_result_handler( inference_result.maybe_moderator_fields = None; } - let response = GetTtsResultSuccessResponse { + Ok(web::Json(GetTtsResultSuccessResponse { success: true, result: inference_result, - }; - - let body = serde_json::to_string(&response) - .map_err(|e| CommonWebError::from_error(e))?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_upload_model_job_status.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_upload_model_job_status.rs index a2dd7ddf90..839b1dd741 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_upload_model_job_status.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/get_tts_upload_model_job_status.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpMessage, HttpRequest, HttpResponse}; +use actix_web::{web, HttpMessage, HttpRequest}; use chrono::{DateTime, Utc}; use derive_more::Display; use log::{error, warn}; @@ -49,7 +49,7 @@ pub struct GetTtsUploadModelStatusSuccessResponse { pub async fn get_tts_upload_model_job_status_handler( http_request: HttpRequest, path: Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { // NB: Since this is publicly exposed, we don't query sensitive data. let record = get_tts_model_upload_job_status(&path.token, &server_state.mysql_pool) @@ -92,15 +92,8 @@ pub async fn get_tts_upload_model_job_status_handler( updated_at: record.updated_at, }; - let response = GetTtsUploadModelStatusSuccessResponse { + Ok(web::Json(GetTtsUploadModelStatusSuccessResponse { success: true, state: model_for_response, - }; - - let body = serde_json::to_string(&response) - .map_err(|e| CommonWebError::from_error(e))?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/search_tts_models_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/search_tts_models_handler.rs index 93878e9a6e..a733c18901 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/search_tts_models_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/search_tts_models_handler.rs @@ -6,7 +6,7 @@ use std::collections::HashSet; use std::sync::Arc; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::error; @@ -67,7 +67,7 @@ pub struct SearchTtsModelsSuccessResponse { pub async fn search_tts_models_handler( _http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let results = search_tts_models( &server_state.elasticsearch, @@ -109,16 +109,9 @@ pub async fn search_tts_models_handler( new_results.push(result); } - let response = SearchTtsModelsSuccessResponse { + Ok(web::Json(SearchTtsModelsSuccessResponse { success: true, models: new_results, - }; - - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/create_user_bookmark_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/create_user_bookmark_handler.rs index a697a8ca44..2142681acd 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/create_user_bookmark_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/create_user_bookmark_handler.rs @@ -97,7 +97,7 @@ pub async fn create_user_bookmark_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data>, -) -> Result +) -> Result, CreateUserBookmarkError> { // NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from // querying the database for entity existence, this is the next best way to prevent incorrect comment @@ -226,10 +226,5 @@ pub async fn create_user_bookmark_handler( new_bookmark_count_for_entity: count.total_count, }; - let body = serde_json::to_string(&response) - .map_err(|_e| CreateUserBookmarkError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/delete_user_bookmark_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/delete_user_bookmark_handler.rs index b86ba95adc..e7287756e3 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/delete_user_bookmark_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/delete_user_bookmark_handler.rs @@ -22,7 +22,6 @@ use tokens::tokens::user_bookmarks::UserBookmarkToken; use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::state::server_state::ServerState; /// For the URL PathInfo @@ -94,7 +93,7 @@ pub async fn delete_user_bookmark_handler( path: Path, _request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, DeleteUserBookmarkError> { let mut mysql_connection = server_state.mysql_pool .acquire() .await @@ -181,5 +180,5 @@ pub async fn delete_user_bookmark_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_entity_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_entity_handler.rs index d99c9ac5fe..cb78d8714c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_entity_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_entity_handler.rs @@ -92,7 +92,7 @@ pub async fn list_user_bookmarks_for_entity_handler( _http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result +) -> Result, ListUserBookmarksForEntityError> { let entity_token = UserBookmarkEntityToken::from_entity_type_and_token( path.entity_type, &path.entity_token); @@ -128,10 +128,5 @@ pub async fn list_user_bookmarks_for_entity_handler( .collect(), }; - let body = serde_json::to_string(&response) - .map_err(|_e| ListUserBookmarksForEntityError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_session_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_session_handler.rs index b427cdbcee..3c4620d04e 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_session_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/user_bookmarks/list_user_bookmarks_for_session_handler.rs @@ -84,7 +84,7 @@ pub async fn list_user_bookmarks_for_session_handler( http_request: HttpRequest, query: Query, server_state: web::Data> -) -> Result +) -> Result, ListUserBookmarksError> { let user_session = server_state.session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -108,10 +108,5 @@ pub async fn list_user_bookmarks_for_session_handler( user_bookmarks: Vec::new() }; - let body = serde_json::to_string(&response) - .map_err(|_e| ListUserBookmarksError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/get_user_rating_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/get_user_rating_handler.rs index 39d5c5852b..9060323c2c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/get_user_rating_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/get_user_rating_handler.rs @@ -1,13 +1,11 @@ use std::sync::Arc; -use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse, ResponseError}; +use actix_web::{web, HttpRequest}; use log::{error, info}; use utoipa::ToSchema; use enums::by_table::user_ratings::entity_type::UserRatingEntityType; use enums::by_table::user_ratings::rating_value::UserRatingValue; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::composite_keys::by_table::user_ratings::user_rating_entity::UserRatingEntity; use mysql_queries::queries::users::user_ratings::get_user_rating::{get_user_rating, Args}; use tokens::tokens::media_files::MediaFileToken; @@ -64,7 +62,7 @@ pub struct GetUserRatingResponse { pub async fn get_user_rating_handler( http_request: HttpRequest, path: web::Path, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let mut mysql_connection = server_state.mysql_pool.acquire() .await @@ -121,10 +119,5 @@ pub async fn get_user_rating_handler( maybe_rating_value: maybe_rating.map(|rating| rating.rating_value), }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/set_user_rating_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/set_user_rating_handler.rs index 5d3fc88b9b..0abf554668 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/set_user_rating_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/user_ratings/set_user_rating_handler.rs @@ -1,7 +1,6 @@ use std::sync::Arc; -use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse, ResponseError}; +use actix_web::{web, HttpRequest}; use log::{error, info, warn}; use sqlx::Acquire; use utoipa::ToSchema; @@ -9,7 +8,6 @@ use utoipa::ToSchema; use enums::by_table::user_ratings::entity_type::UserRatingEntityType; use enums::by_table::user_ratings::rating_value::UserRatingValue; use http_server_common::request::get_request_ip::get_request_ip; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::composite_keys::by_table::user_ratings::user_rating_entity::UserRatingEntity; use mysql_queries::queries::entity_stats::stats_entity_token::StatsEntityToken; use mysql_queries::queries::entity_stats::upsert_entity_stats_on_ratings_event::{upsert_entity_stats_on_ratings_event, RatingsAction, UpsertEntityStatsArgs}; @@ -70,7 +68,7 @@ pub struct SetUserRatingResponse { pub async fn set_user_rating_handler( http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { // NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from // querying the database for entity existence, this is the next best way to prevent incorrect comment @@ -239,10 +237,5 @@ pub async fn set_user_rating_handler( new_positive_rating_count_for_entity: count.positive_count, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/users/edit_profile_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/users/edit_profile_handler.rs index 58cbd7447f..2a60d2f873 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/users/edit_profile_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/users/edit_profile_handler.rs @@ -5,7 +5,7 @@ use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use sqlx::MySqlPool; @@ -65,7 +65,7 @@ pub async fn edit_profile_handler( mysql_pool: web::Data, redis_ttl_cache: web::Data, session_checker: web::Data, -) -> Result +) -> Result, CommonWebError> { let maybe_user_session = session_checker .maybe_get_user_session(&http_request, &mysql_pool) @@ -285,10 +285,5 @@ pub async fn edit_profile_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(|_e| CommonWebError::BadInputWithSimpleMessage("".to_string()))?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/check_if_voice_clone_request_submitted.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/check_if_voice_clone_request_submitted.rs index a952160e10..10192e2b9f 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/check_if_voice_clone_request_submitted.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/check_if_voice_clone_request_submitted.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use http_server_common::response::serialize_as_json_error::serialize_as_json_error; @@ -36,7 +36,7 @@ pub struct CheckIfVoiceRequestSubmittedResponse { pub async fn check_if_voice_clone_request_submitted_handler( http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -83,10 +83,5 @@ pub async fn check_if_voice_clone_request_submitted_handler( has_submitted, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/create_voice_clone_request.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/create_voice_clone_request.rs index 648076d9fe..441acea828 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/create_voice_clone_request.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_clone_requests/create_voice_clone_request.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use http_server_common::request::get_request_ip::get_request_ip; @@ -65,7 +65,7 @@ pub struct CreateVoiceRequestResponse { pub async fn create_voice_clone_request_handler( http_request: HttpRequest, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -113,10 +113,5 @@ pub async fn create_voice_clone_request_handler( success: true, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs index f4892bb727..68353d1cbe 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/inference/enqueue_tts_request.rs @@ -4,7 +4,7 @@ use std::sync::Arc; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use serde::Deserialize; use serde::Serialize; @@ -78,8 +78,8 @@ pub async fn enqueue_tts_request( http_request: HttpRequest, request: web::Json, server_state: web::Data> -) -> Result { - +) -> Result, CommonWebError> { + let mut maybe_user_token: Option = None; let mut mysql_connection = server_state.mysql_pool.acquire().await.map_err(|err| { @@ -194,8 +194,5 @@ pub async fn enqueue_tts_request( inference_job_token: job_token, }; - let body = serde_json::to_string(&response)?; - - // Error handling 101 rust result type returned like so. - Ok(HttpResponse::Ok().content_type("application/json").body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/delete_sample.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/delete_sample.rs index 6cedc383ef..21bbda98a1 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/delete_sample.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/delete_sample.rs @@ -1,12 +1,10 @@ use std::sync::Arc; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse, ResponseError}; +use actix_web::{web, HttpRequest}; use log::warn; -use http_server_common::response::response_error_helpers::to_simple_json_error; -use http_server_common::response::response_success_helpers::simple_json_success; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use mysql_queries::queries::voice_designer::voice_samples::delete_sample::{delete_sample_as_mod, delete_sample_as_user, undelete_sample_as_mod, undelete_sample_as_user}; use mysql_queries::queries::voice_designer::voice_samples::get_dataset_sample::get_dataset_sample_by_token; use tokens::tokens::zs_voice_dataset_samples::ZsVoiceDatasetSampleToken; @@ -35,7 +33,7 @@ pub async fn delete_sample_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -122,5 +120,5 @@ pub async fn delete_sample_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/list_samples_by_dataset.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/list_samples_by_dataset.rs index c34747aa0b..b20aaedc5d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/list_samples_by_dataset.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_dataset_samples/list_samples_by_dataset.rs @@ -1,8 +1,6 @@ use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; @@ -47,7 +45,7 @@ pub async fn list_samples_by_dataset_handler( http_request: HttpRequest, path: web::Path, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state.session_checker.maybe_get_user_session( &http_request, &server_state.mysql_pool @@ -108,10 +106,5 @@ pub async fn list_samples_by_dataset_handler( samples }; - let body = serde_json::to_string(&response).map_err(|e| { - warn!("json serialization error: {:?}", e); - CommonWebError::from_error(e) - })?; - - Ok(HttpResponse::Ok().content_type("application/json").body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/create_dataset.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/create_dataset.rs index 33c5afbc61..c6dfe6e254 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/create_dataset.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/create_dataset.rs @@ -1,14 +1,11 @@ use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{error, warn}; use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::voice_designer::datasets::create_dataset::{create_dataset, CreateDatasetArgs}; use tokens::tokens::zs_voice_datasets::ZsVoiceDatasetToken; @@ -34,7 +31,7 @@ pub struct CreateDatasetResponse { // NB: Not using DeriveMore since Clion doesn't understand it. // =============== Handler =============== -pub async fn create_dataset_handler(http_request: HttpRequest, request: web::Json, server_state: web::Data>) -> Result { +pub async fn create_dataset_handler(http_request: HttpRequest, request: web::Json, server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state.session_checker.maybe_get_user_session(&http_request, &server_state.mysql_pool).await.map_err(|e| { error!("Error getting user session: {:?}", e); CommonWebError::from_error(e) @@ -78,10 +75,5 @@ pub async fn create_dataset_handler(http_request: HttpRequest, request: web::Jso }; - let body = serde_json::to_string(&response) - .map_err(|e| CommonWebError::from_error(e))?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/delete_dataset.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/delete_dataset.rs index 02680799f6..0bae688f3c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/delete_dataset.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/delete_dataset.rs @@ -1,18 +1,15 @@ use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use mysql_queries::queries::voice_designer::datasets::delete_dataset::{delete_dataset_as_mod, delete_dataset_as_user, undelete_dataset_as_mod, undelete_dataset_as_user}; use mysql_queries::queries::voice_designer::datasets::get_dataset::get_dataset_by_token; use tokens::tokens::zs_voice_datasets::ZsVoiceDatasetToken; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::state::server_state::ServerState; use crate::util::delete_role_disambiguation::{delete_role_disambiguation, DeleteRole}; @@ -39,7 +36,7 @@ pub async fn delete_dataset_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result{ +) -> Result, CommonWebError>{ let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -140,6 +137,6 @@ pub async fn delete_dataset_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/get_dataset.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/get_dataset.rs index 216eb7c368..b3be160233 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/get_dataset.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/get_dataset.rs @@ -1,10 +1,8 @@ use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; @@ -42,7 +40,7 @@ pub async fn get_dataset_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -109,10 +107,5 @@ pub async fn get_dataset_handler( updated_at: dataset.updated_at, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_session.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_session.rs index 88b789bf2b..1e7146dae4 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_session.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_session.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; @@ -61,7 +61,7 @@ impl ResponseError for ListDatasetsByUserError { pub async fn list_datasets_by_session_handler( http_request: HttpRequest, server_state: web::Data> -) -> Result { +) -> Result, ListDatasetsByUserError> { let user_session = server_state .session_checker @@ -122,10 +122,5 @@ pub async fn list_datasets_by_session_handler( datasets, }; - let body = serde_json::to_string(&response) - .map_err(|e| ListDatasetsByUserError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_user.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_user.rs index c7d92c08dd..cbf51672da 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_user.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/list_datasets_by_user.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; use utoipa::ToSchema; @@ -82,7 +82,7 @@ pub async fn list_datasets_by_user_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result { +) -> Result, ListDatasetsByUserError> { let maybe_user_session = server_state .session_checker @@ -148,10 +148,5 @@ pub async fn list_datasets_by_user_handler( datasets, }; - let body = serde_json::to_string(&response) - .map_err(|e| ListDatasetsByUserError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/update_dataset.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/update_dataset.rs index 37a437fb80..cfe2a62cbb 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/update_dataset.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voice_datasets/update_dataset.rs @@ -1,16 +1,13 @@ use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{error, warn}; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use enums::common::visibility::Visibility; use http_server_common::request::get_request_ip::get_request_ip; -use http_server_common::response::response_success_helpers::simple_json_success; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::voice_designer::datasets::get_dataset::get_dataset_by_token; use mysql_queries::queries::voice_designer::datasets::update_dataset::{update_dataset, UpdateDatasetArgs}; use tokens::tokens::zs_voice_datasets::ZsVoiceDatasetToken; @@ -49,7 +46,7 @@ pub async fn update_dataset_handler( http_request: HttpRequest, path: Path, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -169,5 +166,5 @@ pub async fn update_dataset_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs index b26dd52eb7..539dbf52e8 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/create_voice.rs @@ -5,9 +5,7 @@ use std::fmt::Debug; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{info, warn}; use serde::Deserialize; use serde::Serialize; @@ -33,7 +31,6 @@ use tokens::tokens::users::UserToken; use crate::configs::plans::get_correct_plan_for_session::get_correct_plan_for_session; use crate::http_server::common_responses::common_web_error::CommonWebError; -use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; use crate::state::server_state::ServerState; #[derive(Deserialize)] @@ -60,7 +57,7 @@ pub async fn create_voice_handler( http_request: HttpRequest, request: web::Json, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { // voice data set token ... zsd_wb08asm0m4a4cz42wwqked6tfg6e e.g // need this for the job @@ -184,9 +181,5 @@ pub async fn create_voice_handler( inference_job_token: job_token, }; - let body = serde_json - ::to_string(&response) - ?; - // Error handling 101 rust result type returned like so. - Ok(HttpResponse::Ok().content_type("application/json").body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/delete_voice.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/delete_voice.rs index dbcc9f3256..92f566062b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/delete_voice.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/delete_voice.rs @@ -1,18 +1,15 @@ use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use mysql_queries::queries::voice_designer::voices::delete_voice::{delete_voice_as_mod, delete_voice_as_user, undelete_voice_as_mod, undelete_voice_as_user}; use mysql_queries::queries::voice_designer::voices::get_voice::get_voice_by_token; use tokens::tokens::zs_voices::ZsVoiceToken; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::state::server_state::ServerState; use crate::util::delete_role_disambiguation::{delete_role_disambiguation, DeleteRole}; @@ -39,7 +36,7 @@ pub async fn delete_voice_handler( path: Path, request: web::Json, server_state: web::Data> -) -> Result{ +) -> Result, CommonWebError>{ let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -139,5 +136,5 @@ pub async fn delete_voice_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/get_voice.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/get_voice.rs index 1136685112..d58150a742 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/get_voice.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/get_voice.rs @@ -1,10 +1,8 @@ use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; @@ -42,7 +40,7 @@ pub async fn get_voice_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -109,10 +107,5 @@ pub async fn get_voice_handler( updated_at: voice.updated_at, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_available_voices.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_available_voices.rs index 68456e37fc..1eca058bc7 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_available_voices.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_available_voices.rs @@ -1,8 +1,6 @@ use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::{info, warn}; @@ -48,7 +46,7 @@ pub async fn list_available_voices_handler( http_request: HttpRequest, query: web::Query, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state.session_checker.maybe_get_user_session( &http_request, @@ -158,12 +156,7 @@ pub async fn list_available_voices_handler( cursor_previous, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_session.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_session.rs index ef34ff9f6a..70df37978e 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_session.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_session.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; @@ -60,7 +60,7 @@ impl ResponseError for ListVoicesByUserError { pub async fn list_voices_by_session_handler( http_request: HttpRequest, server_state: web::Data> -) -> Result { +) -> Result, ListVoicesByUserError> { let user_session = server_state .session_checker @@ -121,10 +121,5 @@ pub async fn list_voices_by_session_handler( voices, }; - let body = serde_json::to_string(&response) - .map_err(|e| ListVoicesByUserError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_user.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_user.rs index 757bbcaec0..ac8978f02c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_user.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/list_voices_by_user.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; @@ -68,7 +68,7 @@ pub async fn list_voices_by_user_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result { +) -> Result, ListVoicesByUserError> { let maybe_user_session = server_state .session_checker @@ -134,12 +134,7 @@ pub async fn list_voices_by_user_handler( voices, }; - let body = serde_json::to_string(&response) - .map_err(|e| ListVoicesByUserError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/update_voice.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/update_voice.rs index 513df6d9d4..6b36550f05 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/update_voice.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/voices/update_voice.rs @@ -1,15 +1,12 @@ use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::{error, warn}; +use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; use enums::common::visibility::Visibility; -use http_server_common::response::response_success_helpers::simple_json_success; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::voice_designer::voices::get_voice::get_voice_by_token; use mysql_queries::queries::voice_designer::voices::update_voice::{update_voice, UpdateVoiceArgs}; use tokens::tokens::zs_voices::ZsVoiceToken; @@ -48,7 +45,7 @@ pub async fn update_voice_handler( http_request: HttpRequest, path: Path, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -166,5 +163,5 @@ pub async fn update_voice_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/delete/delete_weight_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/delete/delete_weight_handler.rs index af62499971..a0aa0c0188 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/delete/delete_weight_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/delete/delete_weight_handler.rs @@ -1,14 +1,10 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::model_weights::delete_weights::{ delete_weights_as_mod, delete_weights_as_user, @@ -18,7 +14,6 @@ use mysql_queries::queries::model_weights::get::get_weight::get_weight_by_token; use tokens::tokens::model_weights::ModelWeightToken; use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess; -use crate::http_server::web_utils::response_success_helpers::simple_json_success; use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::state::server_state::ServerState; use crate::util::delete_role_disambiguation::{delete_role_disambiguation, DeleteRole}; @@ -57,7 +52,7 @@ pub async fn delete_weight_handler( path: Path, request: web::Json, server_state: web::Data> - ) -> Result{ + ) -> Result, CommonWebError>{ let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -155,5 +150,5 @@ pub async fn delete_weight_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) } \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/get/get_weight_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/get/get_weight_handler.rs index 5013c38322..59a755d18c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/get/get_weight_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/get/get_weight_handler.rs @@ -1,10 +1,7 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; use utoipa::ToSchema; @@ -105,7 +102,7 @@ pub async fn get_weight_handler( http_request: HttpRequest, path: Path, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool) @@ -216,10 +213,5 @@ pub async fn get_weight_handler( updated_at: weight.updated_at, }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_available_weights_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_available_weights_handler.rs index 191e17bfc2..5e255fc50b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_available_weights_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_available_weights_handler.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; use rand::Rng; @@ -142,7 +142,7 @@ pub async fn list_available_weights_handler( http_request: HttpRequest, query: web::Query, server_state: web::Data> -) -> Result { +) -> Result, impl ResponseError> { let maybe_user_session = server_state.session_checker .maybe_get_user_session(&http_request, &server_state.mysql_pool).await .map_err(|e| { @@ -296,8 +296,5 @@ pub async fn list_available_weights_handler( }, }; - let body = serde_json::to_string(&response) - .map_err(|e| ListWeightError::ServerError)?; - - Ok(HttpResponse::Ok().content_type("application/json").body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_featured_weights_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_featured_weights_handler.rs index 7cde33a36f..988973690d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_featured_weights_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_featured_weights_handler.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; use actix_web::web::Query; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; use utoipa::{IntoParams, ToSchema}; @@ -140,7 +140,7 @@ pub async fn list_featured_weights_handler( http_request: HttpRequest, query: Query, server_state: web::Data> -) -> Result { +) -> Result, impl ResponseError> { let maybe_user_session = server_state .session_checker @@ -280,10 +280,5 @@ pub async fn list_featured_weights_handler( }).collect::>(), }; - let body = serde_json::to_string(&response) - .map_err(|e| ListFeaturedWeightsError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_pinned_weights_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_pinned_weights_handler.rs index ab375608d8..8dcc9d0310 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_pinned_weights_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_pinned_weights_handler.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use actix_web::error::ResponseError; use actix_web::http::StatusCode; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::{debug, error, warn}; use redis::Commands; @@ -108,7 +108,7 @@ impl ResponseError for ListPinnedWeightsError { pub async fn list_pinned_weights_handler( http_request: HttpRequest, server_state: web::Data> -) -> Result { +) -> Result, impl ResponseError> { let mut redis = server_state.redis_pool.get() .map_err(|err| { @@ -201,10 +201,5 @@ pub async fn list_pinned_weights_handler( }).collect::>(), }; - let body = serde_json::to_string(&response) - .map_err(|e| ListPinnedWeightsError::ServerError)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_weights_by_user_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_weights_by_user_handler.rs index 528eeaf11d..6ef628657c 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_weights_by_user_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/list/list_weights_by_user_handler.rs @@ -1,10 +1,7 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::{Path, Query}; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use chrono::{DateTime, Utc}; use log::warn; use utoipa::{IntoParams, ToSchema}; @@ -124,7 +121,7 @@ pub async fn list_weights_by_user_handler( path: Path, query: Query, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -248,10 +245,5 @@ pub async fn list_weights_by_user_handler( }; - let body = serde_json::to_string(&response) - .map_err(CommonWebError::from_error)?; - - Ok(HttpResponse::Ok() - .content_type("application/json") - .body(body)) + Ok(web::Json(response)) } \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/set_model_weight_cover_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/set_model_weight_cover_image_handler.rs index 99d410c59e..7f51a764fc 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/set_model_weight_cover_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/set_model_weight_cover_image_handler.rs @@ -1,17 +1,12 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use utoipa::ToSchema; use enums::by_table::media_files::media_file_type::MediaFileType; use http_server_common::request::get_request_ip::get_request_ip; -use http_server_common::response::response_success_helpers::simple_json_success; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::model_weights::edit::set_model_weight_cover_image::{set_model_weight_cover_image, UpdateArgs}; use mysql_queries::queries::model_weights::get::get_weight::get_weight_by_token; @@ -60,7 +55,7 @@ pub async fn set_model_weight_cover_image_handler( http_request: HttpRequest, path: Path, request: web::Json, - server_state: web::Data>) -> Result + server_state: web::Data>) -> Result, CommonWebError> { let maybe_user_session = server_state .session_checker @@ -165,5 +160,5 @@ pub async fn set_model_weight_cover_image_handler( } }; - Ok(simple_json_success()) + Ok(web::Json(SetModelWeightCoverImageResponse { success: true })) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/update_weight_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/update_weight_handler.rs index 04a34c8b20..57d21f99de 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/update_weight_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/weights/update/update_weight_handler.rs @@ -1,10 +1,7 @@ -use std::fmt; use std::sync::Arc; -use actix_web::error::ResponseError; -use actix_web::http::StatusCode; use actix_web::web::Path; -use actix_web::{web, HttpRequest, HttpResponse}; +use actix_web::{web, HttpRequest}; use log::warn; use sqlx::MySqlPool; use utoipa::ToSchema; @@ -16,8 +13,7 @@ use crate::state::server_state::ServerState; use enums::by_table::media_files::media_file_type::MediaFileType; use enums::by_table::model_weights::weights_types::WeightsType; use enums::common::visibility::Visibility; -use http_server_common::response::response_success_helpers::{simple_json_success, SimpleGenericJsonSuccess}; -use http_server_common::response::serialize_as_json_error::serialize_as_json_error; +use http_server_common::response::response_success_helpers::SimpleGenericJsonSuccess; use markdown::simple_markdown_to_html::simple_markdown_to_html; use mysql_queries::queries::media_files::get::get_media_file::get_media_file; use mysql_queries::queries::model_weights::edit::update_weight::{update_weights, CoverImageOption, UpdateWeightArgs}; @@ -85,7 +81,7 @@ pub async fn update_weight_handler( request: web::Json, mysql_pool: web::Data, server_state: web::Data> -) -> Result { +) -> Result, CommonWebError> { let mut mysql_connection = mysql_pool .acquire() .await @@ -222,5 +218,5 @@ pub async fn update_weight_handler( } } - Ok(simple_json_success()) + Ok(web::Json(SimpleGenericJsonSuccess { success: true })) }