You've already forked AstralRinth
forked from didirus/AstralRinth
fix version update route perf (#923)
* fix version update route perf * fix tests
This commit is contained in:
@@ -249,12 +249,6 @@ pub struct OAuthClientEdit {
|
||||
)]
|
||||
pub name: Option<String>,
|
||||
|
||||
#[validate(
|
||||
custom(function = "crate::util::validate::validate_url"),
|
||||
length(max = 255)
|
||||
)]
|
||||
pub icon_url: Option<Option<String>>,
|
||||
|
||||
pub max_scopes: Option<Scopes>,
|
||||
|
||||
#[validate(length(min = 1))]
|
||||
@@ -293,20 +287,12 @@ pub async fn oauth_client_edit(
|
||||
.validate()
|
||||
.map_err(|e| ApiError::Validation(validation_errors_to_string(e, None)))?;
|
||||
|
||||
if client_updates.icon_url.is_none()
|
||||
&& client_updates.name.is_none()
|
||||
&& client_updates.max_scopes.is_none()
|
||||
{
|
||||
return Err(ApiError::InvalidInput("No changes provided".to_string()));
|
||||
}
|
||||
|
||||
if let Some(existing_client) = OAuthClient::get(client_id.into_inner().into(), &**pool).await? {
|
||||
existing_client.validate_authorized(Some(¤t_user))?;
|
||||
|
||||
let mut updated_client = existing_client.clone();
|
||||
let OAuthClientEdit {
|
||||
name,
|
||||
icon_url,
|
||||
max_scopes,
|
||||
redirect_uris,
|
||||
url,
|
||||
@@ -316,10 +302,6 @@ pub async fn oauth_client_edit(
|
||||
updated_client.name = name;
|
||||
}
|
||||
|
||||
if let Some(icon_url) = icon_url {
|
||||
updated_client.icon_url = icon_url;
|
||||
}
|
||||
|
||||
if let Some(max_scopes) = max_scopes {
|
||||
updated_client.max_scopes = max_scopes;
|
||||
}
|
||||
|
||||
@@ -331,12 +331,13 @@ pub async fn update_files(
|
||||
let update_version_ids = sqlx::query!(
|
||||
"
|
||||
SELECT v.id version_id, v.mod_id mod_id
|
||||
FROM versions v
|
||||
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 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 v.mod_id = ANY($1) AND (cardinality($4::varchar[]) = 0 OR v.version_type = ANY($4))
|
||||
WHERE m.id = ANY($1)
|
||||
ORDER BY v.date_published ASC
|
||||
",
|
||||
&files.iter().map(|x| x.project_id.0).collect::<Vec<_>>(),
|
||||
|
||||
Reference in New Issue
Block a user