Compare commits

...
Author SHA1 Message Date
Brandon Thomas 8a0fa62cd7 jsonify actix handlers 2026-06-16 00:27:24 -04:00
74 changed files with 233 additions and 581 deletions
@@ -89,7 +89,7 @@ pub async fn log_browser_session_handler(
http_request: HttpRequest,
request: web::Json<LogBrowserSessionRequest>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, LogBrowserSessionError>
) -> Result<web::Json<LogBrowserSessionSuccessResponse>, 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))
}
@@ -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<CreateBetaKeysRequest>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, CommonWebError>
) -> Result<web::Json<CreateBetaKeysSuccessResponse>, 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))
}
@@ -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<EditBetaKeyDistributedFlagRequest>,
path: Path<EditBetaKeyDistributedFlagPathInfo>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, CommonWebError>
) -> Result<web::Json<EditBetaKeyDistributedFlagSuccessResponse>, 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))
}
@@ -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<EditBetaKeyNoteRequest>,
path: Path<EditBetaKeyNotePathInfo>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, CommonWebError>
) -> Result<web::Json<EditBetaKeyNoteSuccessResponse>, 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))
}
@@ -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<ListBetaKeysQueryParams>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<ListBetaKeysSuccessResponse>, 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))
}
@@ -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<RedeemBetaKeyRequest>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, CommonWebError>
) -> Result<web::Json<RedeemBetaKeySuccessResponse>, 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<serde_json::Error>` 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(
@@ -97,7 +97,7 @@ pub async fn create_comment_handler(
http_request: HttpRequest,
request: web::Json<CreateCommentRequest>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, CreateCommentError>
) -> Result<web::Json<CreateCommentSuccessResponse>, 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))
}
@@ -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<DeleteCommentPathInfo>,
request: web::Json<DeleteCommentRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, DeleteCommentError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -129,7 +129,7 @@ pub async fn list_comments_handler(
_http_request: HttpRequest,
path: Path<ListCommentsPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, ListCommentsError>
) -> Result<web::Json<ListCommentsSuccessResponse>, 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))
}
@@ -70,7 +70,7 @@ impl fmt::Display for EnqueueGenericDownloadError {
pub async fn enqueue_generic_download_handler(
http_request: HttpRequest,
request: web::Json<EnqueueGenericDownloadRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, EnqueueGenericDownloadError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<EnqueueGenericDownloadSuccessResponse>, 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))
}
@@ -87,7 +87,7 @@ impl fmt::Display for GetGenericDownloadJobStatusError {
pub async fn get_generic_download_job_status_handler(
http_request: HttpRequest,
path: Path<GetGenericDownloadJobStatusPathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, GetGenericDownloadJobStatusError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetGenericDownloadJobStatusSuccessResponse>, 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))
}
@@ -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<CreateFeaturedItemRequest>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, CommonWebError>
) -> Result<web::Json<CreateFeaturedItemSuccessResponse>, 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))
}
@@ -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<DeleteFeaturedItemRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<KillInferenceJobsRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<KillInferenceJobsResponse>, 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))
}
@@ -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<TerminateInferenceJobPathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<TerminateInferenceJobSuccessResponse>, 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))
}
@@ -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<MediaFileTokenPathInfo>,
request: web::Json<ChangeMediaFileVisibilityRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<MediaFileTokenPathInfo>,
request: web::Json<RenameMediaFileRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError>{
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<MediaFileTokenPathInfo>,
request: web::Json<SetMediaFileCoverImageRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError>{
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<UpdateMediaFilePathInfo>,
request: web::Json<UpdateMediaFileRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<UpdateMediaFileResponse>, 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 }))
}
@@ -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<ModeratorTokenInfoPath>,
http_request: HttpRequest,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<ModeratorTokenInfoResponse>, 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:";
@@ -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<AddIpBanRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<DeleteIpBanPathInfo>,
request: web::Json<DeleteIpBanRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<GetIpBanPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<GetIpBanResponse>, 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))
}
@@ -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<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<ListIpBansResponse>, 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))
}
@@ -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<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<GetTtsInferenceQueueCountResponse>, 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))
}
@@ -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<Arc<ServerState>>
) -> Result<HttpResponse, GetW2lInferenceQueueCountError> {
) -> Result<web::Json<GetW2lInferenceQueueCountResponse>, 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))
}
@@ -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<KillTtsInferenceJobsRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<KillTtsInferenceJobsResponse>, 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))
}
@@ -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<EditUserFeatureFlagsRequest>,
server_state: Data<Arc<ServerState>>,
redis_pool: Data<r2d2::Pool<Client>>,
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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<Option<String>, _> = redis.del(&cache_key);
}
Ok(simple_json_success())
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
}
@@ -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<SetUnsubscribeReasonRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SetUnsubscribeReasonResponse>, 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))
}
@@ -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<WindowName, Vec<TtsModelToken>>;
pub async fn list_trending_tts_models_handler(
_http_request: HttpRequest,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<ListTrendingTtsModelsResponse>, 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))
}
@@ -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<DeleteTtsModelPathInfo>,
request: web::Json<DeleteTtsModelRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<DeleteTtsInferenceResultPathInfo>,
request: web::Json<DeleteTtsInferenceResultRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<EditTtsModelPathInfo>,
request: Json<EditTtsModelRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SimpleGenericJsonSuccess>, 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(
@@ -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<EditTtsResultPathInfo>,
request: web::Json<EditTtsResultRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<UploadTtsModelRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<UploadTtsModelSuccessResponse>, 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> {
@@ -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<GetTtsInferenceStatusPathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetTtsInferenceStatusSuccessResponse>, 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)
@@ -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<GetTtsModelPathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetTtsModelSuccessResponse>, 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))
}
@@ -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<GetTtsModelUseCountPathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetTtsModelUseCountSuccessResponse>, 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))
}))
}
@@ -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<GetTtsResultPathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetTtsResultSuccessResponse>, 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))
}))
}
@@ -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<GetTtsUploadModelStatusPathInfo>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetTtsUploadModelStatusSuccessResponse>, 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))
}))
}
@@ -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<SearchTtsModelsRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SearchTtsModelsSuccessResponse>, 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))
}))
}
@@ -97,7 +97,7 @@ pub async fn create_user_bookmark_handler(
http_request: HttpRequest,
request: web::Json<CreateUserBookmarkRequest>,
server_state: web::Data<Arc<ServerState>>,
) -> Result<HttpResponse, CreateUserBookmarkError>
) -> Result<web::Json<CreateUserBookmarkSuccessResponse>, 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))
}
@@ -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<DeleteUserBookmarkPathInfo>,
_request: web::Json<DeleteUserBookmarkRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, DeleteUserBookmarkError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -92,7 +92,7 @@ pub async fn list_user_bookmarks_for_entity_handler(
_http_request: HttpRequest,
path: Path<ListUserBookmarksForEntityPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, ListUserBookmarksForEntityError>
) -> Result<web::Json<ListUserBookmarksForEntitySuccessResponse>, 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))
}
@@ -84,7 +84,7 @@ pub async fn list_user_bookmarks_for_session_handler(
http_request: HttpRequest,
query: Query<ListUserBookmarksQueryData>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, ListUserBookmarksError>
) -> Result<web::Json<ListUserBookmarksSuccessResponse>, 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))
}
@@ -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<GetUserRatingPath>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetUserRatingResponse>, 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))
}
@@ -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<SetUserRatingRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SetUserRatingResponse>, 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))
}
@@ -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<MySqlPool>,
redis_ttl_cache: web::Data<RedisTtlCache>,
session_checker: web::Data<SessionChecker>,
) -> Result<HttpResponse, CommonWebError>
) -> Result<web::Json<EditProfileSuccessResponse>, 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))
}
@@ -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<CheckIfVoiceRequestSubmittedRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<CheckIfVoiceRequestSubmittedResponse>, 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))
}
@@ -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<CreateVoiceRequestRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<CreateVoiceRequestResponse>, 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))
}
@@ -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<EnqueueTTSRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<EnqueueTTSRequestSuccessResponse>, CommonWebError> {
let mut maybe_user_token: Option<UserToken> = 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))
}
@@ -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<DeleteSamplePathInfo>,
request: web::Json<DeleteSampleRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<ListSamplesByDatasetPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<ListSamplesByDatasetSuccessResponse>, 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))
}
@@ -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<CreateDatasetRequest>, server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError> {
pub async fn create_dataset_handler(http_request: HttpRequest, request: web::Json<CreateDatasetRequest>, server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<CreateDatasetResponse>, 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))
}
@@ -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<DeleteDatasetPathInfo>,
request: web::Json<DeleteDatasetRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError>{
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<GetDatasetPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<GetDatasetResponse>, 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))
}
@@ -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<Arc<ServerState>>
) -> Result<HttpResponse, ListDatasetsByUserError> {
) -> Result<web::Json<ListDatasetsByUserSuccessResponse>, 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))
}
@@ -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<ListDatasetsByUserPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, ListDatasetsByUserError> {
) -> Result<web::Json<ListDatasetsByUserSuccessResponse>, 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))
}
@@ -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<UpdateDatasetPathInfo>,
request: web::Json<UpdateDatasetRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<EnqueueCreateVoiceRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<EnqueueCreateVoiceRequestSuccessResponse>, 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))
}
@@ -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<DeleteVoicePathInfo>,
request: web::Json<DeleteVoiceRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError>{
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<GetVoicePathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<GetVoiceResponse>, 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))
}
@@ -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<ListZsVoicesQuery>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<ListZsVoicesSuccessResponse>, 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))
}
@@ -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<Arc<ServerState>>
) -> Result<HttpResponse, ListVoicesByUserError> {
) -> Result<web::Json<ListVoicesByUserSuccessResponse>, 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))
}
@@ -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<ListVoicesByUserPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, ListVoicesByUserError> {
) -> Result<web::Json<ListVoicesByUserSuccessResponse>, 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))
}
@@ -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<UpdateVoicePathInfo>,
request: web::Json<UpdateVoiceRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<DeleteWeightPathInfo>,
request: web::Json<DeleteWeightRequest>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError>{
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}
@@ -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<GetWeightPathInfo>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<GetWeightResponse>, 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))
}
@@ -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<ListAvailableWeightsQuery>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, impl ResponseError> {
) -> Result<web::Json<ListAvailableWeightsSuccessResponse>, 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))
}
@@ -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<ListFeaturedWeightsQueryParams>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, impl ResponseError> {
) -> Result<web::Json<ListFeaturedWeightsSuccessResponse>, impl ResponseError> {
let maybe_user_session = server_state
.session_checker
@@ -280,10 +280,5 @@ pub async fn list_featured_weights_handler(
}).collect::<Vec<_>>(),
};
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))
}
@@ -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<Arc<ServerState>>
) -> Result<HttpResponse, impl ResponseError> {
) -> Result<web::Json<ListPinnedWeightsSuccessResponse>, 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::<Vec<_>>(),
};
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))
}
@@ -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<ListWeightsByUserPathInfo>,
query: Query<ListWeightsForUserQueryParams>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<ListWeightsByUserSuccessResponse>, 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))
}
@@ -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<SetModelWeightCoverImagePathInfo>,
request: web::Json<SetModelWeightCoverImageRequest>,
server_state: web::Data<Arc<ServerState>>) -> Result<HttpResponse, CommonWebError>
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SetModelWeightCoverImageResponse>, 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 }))
}
@@ -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<UpdateWeightRequest>,
mysql_pool: web::Data<MySqlPool>,
server_state: web::Data<Arc<ServerState>>
) -> Result<HttpResponse, CommonWebError> {
) -> Result<web::Json<SimpleGenericJsonSuccess>, 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 }))
}