You've already forked AstralRinth
forked from didirus/AstralRinth
Move validators to seperate thread, other fixes (#253)
* Move validators to seperate thread, other fixes * Update rust version in Dockerfile * Fix notifs not working * Fix pack validator not enforcing files
This commit is contained in:
@@ -129,7 +129,7 @@ pub fn teams_config(cfg: &mut web::ServiceConfig) {
|
||||
|
||||
pub fn notifications_config(cfg: &mut web::ServiceConfig) {
|
||||
cfg.service(notifications::notifications_get);
|
||||
cfg.service(notifications::notification_delete);
|
||||
cfg.service(notifications::notifications_delete);
|
||||
|
||||
cfg.service(
|
||||
web::scope("notification")
|
||||
|
||||
@@ -510,7 +510,7 @@ pub async fn project_create_inner(
|
||||
&*project_create_data.project_type,
|
||||
version_data.loaders.clone(),
|
||||
version_data.game_versions.clone(),
|
||||
&all_game_versions,
|
||||
all_game_versions.clone(),
|
||||
false,
|
||||
&mut transaction,
|
||||
)
|
||||
|
||||
@@ -373,7 +373,7 @@ pub async fn project_edit(
|
||||
}
|
||||
}
|
||||
|
||||
let status_id = database::models::StatusId::get_id(&status, &mut *transaction)
|
||||
let status_id = database::models::StatusId::get_id(status, &mut *transaction)
|
||||
.await?
|
||||
.ok_or_else(|| {
|
||||
ApiError::InvalidInputError(
|
||||
@@ -423,17 +423,15 @@ pub async fn project_edit(
|
||||
.await?;
|
||||
|
||||
for category in categories {
|
||||
let category_id = database::models::categories::Category::get_id(
|
||||
&category,
|
||||
&mut *transaction,
|
||||
)
|
||||
.await?
|
||||
.ok_or_else(|| {
|
||||
ApiError::InvalidInputError(format!(
|
||||
"Category {} does not exist.",
|
||||
category.clone()
|
||||
))
|
||||
})?;
|
||||
let category_id =
|
||||
database::models::categories::Category::get_id(category, &mut *transaction)
|
||||
.await?
|
||||
.ok_or_else(|| {
|
||||
ApiError::InvalidInputError(format!(
|
||||
"Category {} does not exist.",
|
||||
category.clone()
|
||||
))
|
||||
})?;
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
|
||||
@@ -218,7 +218,9 @@ pub async fn add_team_member(
|
||||
|
||||
let result = sqlx::query!(
|
||||
"
|
||||
SELECT m.title, m.id FROM mods m
|
||||
SELECT m.title title, m.id id, pt.name project_type
|
||||
FROM mods m
|
||||
INNER JOIN project_types pt ON pt.id = m.project_type
|
||||
WHERE m.team_id = $1
|
||||
",
|
||||
team_id as crate::database::models::ids::TeamId
|
||||
@@ -234,7 +236,7 @@ pub async fn add_team_member(
|
||||
"Team invite from {} to join the team for project {}",
|
||||
current_user.username, result.title
|
||||
),
|
||||
link: format!("project/{}", ProjectId(result.id as u64)),
|
||||
link: format!("/{}/{}", result.project_type, ProjectId(result.id as u64)),
|
||||
actions: vec![
|
||||
NotificationActionBuilder {
|
||||
title: "Accept".to_string(),
|
||||
@@ -361,7 +363,7 @@ pub async fn transfer_ownership(
|
||||
TeamMember::edit_team_member(
|
||||
id.into(),
|
||||
current_user.id.into(),
|
||||
None,
|
||||
Some(Permissions::ALL),
|
||||
Some(crate::models::teams::DEFAULT_ROLE.to_string()),
|
||||
None,
|
||||
&mut transaction,
|
||||
|
||||
@@ -323,8 +323,7 @@ pub async fn user_icon_edit(
|
||||
}
|
||||
|
||||
let bytes =
|
||||
read_from_payload(&mut payload, 262144, "Icons must be smaller than 256KiB")
|
||||
.await?;
|
||||
read_from_payload(&mut payload, 2097152, "Icons must be smaller than 2MiB").await?;
|
||||
|
||||
let upload_data = file_host
|
||||
.upload_file(
|
||||
|
||||
@@ -288,7 +288,7 @@ async fn version_create_inner(
|
||||
&*project_type,
|
||||
version_data.loaders,
|
||||
version_data.game_versions,
|
||||
&all_game_versions,
|
||||
all_game_versions.clone(),
|
||||
false,
|
||||
&mut transaction,
|
||||
)
|
||||
@@ -308,8 +308,10 @@ async fn version_create_inner(
|
||||
|
||||
let result = sqlx::query!(
|
||||
"
|
||||
SELECT m.title FROM mods m
|
||||
WHERE id = $1
|
||||
SELECT m.title title, pt.name project_type
|
||||
FROM mods m
|
||||
INNER JOIN project_types pt ON pt.id = m.project_type
|
||||
WHERE m.id = $1
|
||||
",
|
||||
builder.project_id as crate::database::models::ids::ProjectId
|
||||
)
|
||||
@@ -344,7 +346,10 @@ async fn version_create_inner(
|
||||
result.title,
|
||||
version_data.version_number.clone()
|
||||
),
|
||||
link: format!("project/{}/version/{}", project_id, version_id),
|
||||
link: format!(
|
||||
"/{}/{}/version/{}",
|
||||
result.project_type, project_id, version_id
|
||||
),
|
||||
actions: vec![],
|
||||
}
|
||||
.insert_many(users, &mut *transaction)
|
||||
@@ -544,7 +549,7 @@ async fn upload_file_to_version_inner(
|
||||
.into_iter()
|
||||
.map(GameVersion)
|
||||
.collect(),
|
||||
&all_game_versions,
|
||||
all_game_versions.clone(),
|
||||
true,
|
||||
&mut transaction,
|
||||
)
|
||||
@@ -579,7 +584,7 @@ pub async fn upload_file(
|
||||
project_type: &str,
|
||||
loaders: Vec<Loader>,
|
||||
game_versions: Vec<GameVersion>,
|
||||
all_game_versions: &[models::categories::GameVersion],
|
||||
all_game_versions: Vec<models::categories::GameVersion>,
|
||||
ignore_primary: bool,
|
||||
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
|
||||
) -> Result<(), CreateError> {
|
||||
@@ -614,13 +619,14 @@ pub async fn upload_file(
|
||||
}
|
||||
|
||||
let validation_result = validate_file(
|
||||
&data,
|
||||
file_extension,
|
||||
project_type,
|
||||
data.clone().into(),
|
||||
file_extension.to_string(),
|
||||
project_type.to_string(),
|
||||
loaders,
|
||||
game_versions,
|
||||
all_game_versions,
|
||||
)?;
|
||||
)
|
||||
.await?;
|
||||
|
||||
let upload_data = file_host
|
||||
.upload_file(
|
||||
|
||||
@@ -259,8 +259,8 @@ pub async fn version_edit(
|
||||
let builders = dependencies
|
||||
.iter()
|
||||
.map(|x| database::models::version_item::DependencyBuilder {
|
||||
project_id: x.project_id.clone().map(|x| x.into()),
|
||||
version_id: x.version_id.clone().map(|x| x.into()),
|
||||
project_id: x.project_id.map(|x| x.into()),
|
||||
version_id: x.version_id.map(|x| x.into()),
|
||||
dependency_type: x.dependency_type.to_string(),
|
||||
})
|
||||
.collect::<Vec<database::models::version_item::DependencyBuilder>>();
|
||||
|
||||
Reference in New Issue
Block a user