Merge bc17b4b526b31f8da7b1259cc95cb8f7fcfaf159 into d22c9e24f4ca63c8757af0e0d9640f5d0431e815
This commit is contained in:
commit
d755039106
@ -512,6 +512,7 @@ pub async fn project_edit(
|
|||||||
moderation_message_body: v2_new_project.moderation_message_body,
|
moderation_message_body: v2_new_project.moderation_message_body,
|
||||||
monetization_status: v2_new_project.monetization_status,
|
monetization_status: v2_new_project.monetization_status,
|
||||||
side_types_migration_review_status: None, // Not to be exposed in v2
|
side_types_migration_review_status: None, // Not to be exposed in v2
|
||||||
|
loader_fields: HashMap::new(), // Loader fields are not a thing in v2
|
||||||
};
|
};
|
||||||
|
|
||||||
// This returns 204 or failure so we don't need to do anything with it
|
// This returns 204 or failure so we don't need to do anything with it
|
||||||
|
|||||||
@ -11,7 +11,7 @@ use crate::database::redis::RedisPool;
|
|||||||
use crate::database::{self, models as db_models};
|
use crate::database::{self, models as db_models};
|
||||||
use crate::file_hosting::{FileHost, FileHostPublicity};
|
use crate::file_hosting::{FileHost, FileHostPublicity};
|
||||||
use crate::models;
|
use crate::models;
|
||||||
use crate::models::ids::ProjectId;
|
use crate::models::ids::{ProjectId, VersionId};
|
||||||
use crate::models::images::ImageContext;
|
use crate::models::images::ImageContext;
|
||||||
use crate::models::notifications::NotificationBody;
|
use crate::models::notifications::NotificationBody;
|
||||||
use crate::models::pats::Scopes;
|
use crate::models::pats::Scopes;
|
||||||
@ -250,6 +250,8 @@ pub struct EditProject {
|
|||||||
pub monetization_status: Option<MonetizationStatus>,
|
pub monetization_status: Option<MonetizationStatus>,
|
||||||
pub side_types_migration_review_status:
|
pub side_types_migration_review_status:
|
||||||
Option<SideTypesMigrationReviewStatus>,
|
Option<SideTypesMigrationReviewStatus>,
|
||||||
|
#[serde(flatten)]
|
||||||
|
pub loader_fields: HashMap<String, serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
@ -870,6 +872,29 @@ pub async fn project_edit(
|
|||||||
.await?;
|
.await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !new_project.loader_fields.is_empty() {
|
||||||
|
for version in db_models::DBVersion::get_many(
|
||||||
|
&project_item.versions,
|
||||||
|
&**pool,
|
||||||
|
&redis,
|
||||||
|
)
|
||||||
|
.await?
|
||||||
|
{
|
||||||
|
super::versions::version_edit_helper(
|
||||||
|
req.clone(),
|
||||||
|
(VersionId::from(version.inner.id),),
|
||||||
|
pool.clone(),
|
||||||
|
redis.clone(),
|
||||||
|
super::versions::EditVersion {
|
||||||
|
fields: new_project.loader_fields.clone(),
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
session_queue.clone(),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// check new description and body for links to associated images
|
// check new description and body for links to associated images
|
||||||
// if they no longer exist in the description or body, delete them
|
// if they no longer exist in the description or body, delete them
|
||||||
let checkable_strings: Vec<&str> =
|
let checkable_strings: Vec<&str> =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user