diff --git a/src/models/reports.rs b/src/models/reports.rs index fe458e883..e970f3434 100644 --- a/src/models/reports.rs +++ b/src/models/reports.rs @@ -23,8 +23,6 @@ pub struct Report { #[serde(rename_all = "kebab-case")] pub enum ItemType { Project, - // TODO remove when API v1 POST routes are removed - Mod, Version, User, Unknown, @@ -34,7 +32,6 @@ impl ItemType { pub fn as_str(&self) -> &'static str { match self { ItemType::Project => "project", - ItemType::Mod => "mod", ItemType::Version => "version", ItemType::User => "user", ItemType::Unknown => "unknown", diff --git a/src/routes/project_creation.rs b/src/routes/project_creation.rs index bfc523a83..f516ef475 100644 --- a/src/routes/project_creation.rs +++ b/src/routes/project_creation.rs @@ -326,7 +326,7 @@ Get logged in user - Add project data to indexing queue */ -pub async fn project_create_inner( +async fn project_create_inner( req: HttpRequest, payload: &mut Multipart, transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>, diff --git a/src/routes/reports.rs b/src/routes/reports.rs index 88dff35b0..cb22f79f1 100644 --- a/src/routes/reports.rs +++ b/src/routes/reports.rs @@ -66,7 +66,7 @@ pub async fn report_create( }; match new_report.item_type { - ItemType::Project | ItemType::Mod => { + ItemType::Project => { let project_id = ProjectId(parse_base62(new_report.item_id.as_str())?); diff --git a/src/routes/v1/mod.rs b/src/routes/v1/mod.rs index 681a922c2..e9e50c615 100644 --- a/src/routes/v1/mod.rs +++ b/src/routes/v1/mod.rs @@ -1,4 +1,4 @@ -use actix_web::{dev::Service, web, HttpResponse}; +use actix_web::{dev::Service, http::Method, web, HttpResponse}; use chrono::{Timelike, Utc}; use futures::FutureExt; @@ -12,9 +12,9 @@ pub fn v1_config(cfg: &mut web::ServiceConfig) { cfg.service( web::scope("api/v1") .wrap_fn(|req, srv| { - let current_minute = Utc::now().minute(); + let time = Utc::now(); - if current_minute % 10 > 5 { + if req.method() == Method::GET && time.hour12().1 < 6 && time.minute() % 10 < 5 { srv.call(req).boxed_local() } else { async { @@ -33,7 +33,6 @@ pub fn v1_config(cfg: &mut web::ServiceConfig) { .configure(versions_config) .configure(teams_config) .configure(users_config) - .configure(reports_config) .configure(notifications_config), ); } @@ -52,35 +51,20 @@ pub fn tags_config(cfg: &mut web::ServiceConfig) { pub fn mods_config(cfg: &mut web::ServiceConfig) { cfg.service(mods::mod_search); cfg.service(mods::mods_get); - cfg.service(mods::mod_create); cfg.service( web::scope("mod") .service(mods::mod_get) - .service(super::projects::project_delete) - .service(super::projects::project_edit) - .service(super::projects::project_icon_edit) - .service(super::projects::project_follow) - .service(super::projects::project_unfollow) .service(web::scope("{mod_id}").service(versions::version_list)), ); } pub fn versions_config(cfg: &mut web::ServiceConfig) { cfg.service(versions::versions_get); - cfg.service(super::version_creation::version_create); - cfg.service( - web::scope("version") - .service(versions::version_get) - .service(super::versions::version_delete) - .service(super::version_creation::upload_file_to_version) - .service(super::versions::version_edit), - ); + cfg.service(web::scope("version").service(versions::version_get)); cfg.service( web::scope("version_file") - .service(super::version_file::delete_file) - .service(super::version_file::get_version_from_hash) - .service(super::version_file::download_version), + .service(super::version_file::get_version_from_hash), ); } @@ -92,23 +76,13 @@ pub fn users_config(cfg: &mut web::ServiceConfig) { web::scope("user") .service(super::users::user_get) .service(users::mods_list) - .service(super::users::user_delete) - .service(super::users::user_edit) - .service(super::users::user_icon_edit) .service(super::users::user_notifications) .service(users::user_follows), ); } pub fn teams_config(cfg: &mut web::ServiceConfig) { - cfg.service( - web::scope("team") - .service(teams::team_members_get) - .service(super::teams::edit_team_member) - .service(super::teams::add_team_member) - .service(super::teams::join_team) - .service(super::teams::remove_team_member), - ); + cfg.service(web::scope("team").service(teams::team_members_get)); } pub fn notifications_config(cfg: &mut web::ServiceConfig) { @@ -116,11 +90,6 @@ pub fn notifications_config(cfg: &mut web::ServiceConfig) { cfg.service( web::scope("notification") - .service(super::notifications::notification_get) - .service(super::notifications::notification_delete), + .service(super::notifications::notification_get), ); } - -pub fn reports_config(cfg: &mut web::ServiceConfig) { - cfg.service(super::reports::report_create); -} diff --git a/src/routes/v1/mods.rs b/src/routes/v1/mods.rs index 7783b18c0..d4f49b552 100644 --- a/src/routes/v1/mods.rs +++ b/src/routes/v1/mods.rs @@ -1,20 +1,12 @@ -use crate::file_hosting::FileHost; use crate::models::projects::SearchRequest; -use crate::routes::project_creation::{ - project_create_inner, undo_uploads, CreateError, -}; use crate::routes::projects::ProjectIds; use crate::routes::ApiError; use crate::search::{search_for_project, SearchConfig, SearchError}; use crate::util::auth::{get_user_from_headers, is_authorized}; use crate::{database, models}; -use actix_multipart::Multipart; -use actix_web::web; -use actix_web::web::Data; -use actix_web::{get, post, HttpRequest, HttpResponse}; +use actix_web::{get, web, HttpRequest, HttpResponse}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; -use std::sync::Arc; #[derive(Serialize, Deserialize, Debug, Clone)] pub struct ResultSearchMod { @@ -150,38 +142,3 @@ pub async fn mods_get( } Ok(HttpResponse::Ok().json(projects)) } - -#[post("mod")] -pub async fn mod_create( - req: HttpRequest, - mut payload: Multipart, - client: Data, - file_host: Data>, -) -> Result { - let mut transaction = client.begin().await?; - let mut uploaded_files = Vec::new(); - - let result = project_create_inner( - req, - &mut payload, - &mut transaction, - &***file_host, - &mut uploaded_files, - &client, - ) - .await; - - if result.is_err() { - let undo_result = undo_uploads(&***file_host, &uploaded_files).await; - let rollback_result = transaction.rollback().await; - - undo_result?; - if let Err(e) = rollback_result { - return Err(e.into()); - } - } else { - transaction.commit().await?; - } - - result -}