mirror of
https://github.com/modrinth/code.git
synced 2026-08-25 09:04:55 +00:00
Fix file version updates not considering visibility (#6105)
This commit is contained in:
@@ -6,7 +6,7 @@ use crate::database::ReadOnlyPgPool;
|
||||
use crate::database::redis::RedisPool;
|
||||
use crate::models::ids::VersionId;
|
||||
use crate::models::pats::Scopes;
|
||||
use crate::models::projects::VersionType;
|
||||
use crate::models::projects::{ProjectStatus, VersionStatus, VersionType};
|
||||
use crate::models::teams::ProjectPermissions;
|
||||
use crate::queue::session::AuthQueue;
|
||||
use crate::routes::internal::delphi;
|
||||
@@ -406,18 +406,26 @@ async fn update_files_internal(
|
||||
"
|
||||
SELECT v.id version_id, v.mod_id mod_id
|
||||
FROM mods m
|
||||
INNER JOIN versions v ON m.id = v.mod_id AND (cardinality($4::varchar[]) = 0 OR v.version_type = ANY($4))
|
||||
INNER JOIN versions v ON m.id = v.mod_id AND (cardinality($4::varchar[]) = 0 OR v.version_type = ANY($4)) AND v.status = ANY($5)
|
||||
INNER JOIN version_fields vf ON vf.field_id = 3 AND v.id = vf.version_id
|
||||
INNER JOIN loader_field_enum_values lfev ON vf.enum_value = lfev.id AND (cardinality($2::varchar[]) = 0 OR lfev.value = ANY($2::varchar[]))
|
||||
INNER JOIN loaders_versions lv ON lv.version_id = v.id
|
||||
INNER JOIN loaders l on lv.loader_id = l.id AND (cardinality($3::varchar[]) = 0 OR l.loader = ANY($3::varchar[]))
|
||||
WHERE m.id = ANY($1)
|
||||
WHERE m.id = ANY($1) AND m.status = ANY($6)
|
||||
ORDER BY v.date_published ASC
|
||||
",
|
||||
&files.iter().map(|x| x.project_id.0).collect::<Vec<_>>(),
|
||||
&update_data.game_versions.clone().unwrap_or_default(),
|
||||
&update_data.loaders.clone().unwrap_or_default(),
|
||||
&update_data.version_types.clone().unwrap_or_default().iter().map(|x| x.to_string()).collect::<Vec<_>>(),
|
||||
&*VersionStatus::iterator()
|
||||
.filter(|x| !x.is_hidden())
|
||||
.map(|x| x.to_string())
|
||||
.collect::<Vec<String>>(),
|
||||
&*ProjectStatus::iterator()
|
||||
.filter(|x| !x.is_hidden())
|
||||
.map(|x| x.to_string())
|
||||
.collect::<Vec<String>>(),
|
||||
)
|
||||
.fetch(&***pool)
|
||||
.try_fold(DashMap::new(), |acc : DashMap<_,Vec<database::models::ids::DBVersionId>>, m| {
|
||||
|
||||
Reference in New Issue
Block a user