api for delete

This commit is contained in:
Brandon Thomas committed 2024-02-03 02:07:44 -05:00
1 parent 76b8b07d8a
commit da9e03e3ae
2 files changed
+21 -3

No files matched your search

@@ -23,6 +23,7 @@ use crate::http_server::common_responses::pagination_page::PaginationPage;
use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats;
use crate::http_server::common_responses::user_details_lite::{DefaultAvatarInfo, UserDetailsLight};
use crate::http_server::endpoints::conversion::enqueue_fbx_to_gltf_handler::*;
use crate::http_server::endpoints::media_files::delete_media_file::*;
use crate::http_server::endpoints::media_files::get_media_file::*;
use crate::http_server::endpoints::media_files::list_featured_media_files::*;
use crate::http_server::endpoints::media_files::list_media_files::*;
@@ -51,6 +52,7 @@ use crate::http_server::web_utils::response_success_helpers::*;
#[openapi(
paths(
crate::http_server::endpoints::conversion::enqueue_fbx_to_gltf_handler::enqueue_fbx_to_gltf_handler,
crate::http_server::endpoints::media_files::delete_media_file::delete_media_file_handler,
crate::http_server::endpoints::media_files::get_media_file::get_media_file_handler,
crate::http_server::endpoints::media_files::list_featured_media_files::list_featured_media_files_handler,
crate::http_server::endpoints::media_files::list_media_files::list_media_files_handler,
@@ -107,6 +109,7 @@ use crate::http_server::web_utils::response_success_helpers::*;
EnqueueTTSRequest,EnqueueTTSRequestSuccessResponse,EnqueueTTSRequestError,
EnqueueFbxToGltfRequest,EnqueueFbxToGltfRequestSuccessResponse,EnqueueFbxToGltfRequestError,
// Media Files
DeleteMediaFileRequest,DeleteMediaFilePathInfo,DeleteMediaFileError,
GetMediaFilePathInfo,GetMediaFileError,GetMediaFileSuccessResponse,GetMediaFileModelInfo,MediaFileInfo,
// Model Weights
GetWeightPathInfo,GetWeightResponse,GetWeightError,
@@ -6,6 +6,7 @@ use actix_web::error::ResponseError;
use actix_web::http::StatusCode;
use actix_web::web::Path;
use log::warn;
use utoipa::ToSchema;
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
use mysql_queries::queries::media_files::delete_media_file::{delete_media_file_as_mod, delete_media_file_as_user, undelete_media_file_as_mod, undelete_media_file_as_user};
@@ -16,7 +17,7 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
use crate::server_state::ServerState;
use crate::util::delete_role_disambiguation::{delete_role_disambiguation, DeleteRole};
#[derive(Deserialize)]
#[derive(Deserialize, ToSchema)]
pub struct DeleteMediaFileRequest {
set_delete: bool,
/// NB: this is only to disambiguate when a user is both a mod and an author.
@@ -24,14 +25,14 @@ pub struct DeleteMediaFileRequest {
}
/// For the URL PathInfo
#[derive(Deserialize)]
#[derive(Deserialize, ToSchema)]
pub struct DeleteMediaFilePathInfo {
token: MediaFileToken,
}
// =============== Error Response ===============
#[derive(Debug, Serialize)]
#[derive(Debug, Serialize, ToSchema)]
pub enum DeleteMediaFileError {
BadInput(String),
NotFound,
@@ -63,6 +64,20 @@ impl fmt::Display for DeleteMediaFileError {
// =============== Handler ===============
#[utoipa::path(
delete,
path = "/v1/media_files/file/{token}",
responses(
(status = 200, description = "Success Delete", body = SimpleGenericJsonSuccess),
(status = 400, description = "Bad input", body = DeleteMediaFileError),
(status = 401, description = "Not authorized", body = DeleteMediaFileError),
(status = 500, description = "Server error", body = DeleteMediaFileError),
),
params(
("request" = DeleteMediaFileRequest, description = "Payload for Request"),
("path" = DeleteMediaFilePathInfo, description = "Path for Request")
)
)]
pub async fn delete_media_file_handler(
http_request: HttpRequest,
path: Path<DeleteMediaFilePathInfo>,