You've already forked AstralRinth
Allow duplicate version numbers, fix version sorting, edit validators (#414)
This commit is contained in:
@@ -18,7 +18,6 @@ use chrono::Utc;
|
||||
use futures::stream::StreamExt;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sqlx::postgres::PgPool;
|
||||
use std::collections::HashSet;
|
||||
use std::sync::Arc;
|
||||
use thiserror::Error;
|
||||
use validator::Validate;
|
||||
@@ -362,12 +361,6 @@ pub async fn project_create_inner(
|
||||
CreateError::InvalidInput(validation_errors_to_string(err, None))
|
||||
})?;
|
||||
|
||||
let mut uniq = HashSet::new();
|
||||
create_data
|
||||
.initial_versions
|
||||
.iter()
|
||||
.all(|x| uniq.insert(x.version_number.clone()));
|
||||
|
||||
let slug_project_id_option: Option<ProjectId> =
|
||||
serde_json::from_str(&*format!("\"{}\"", create_data.slug)).ok();
|
||||
|
||||
|
||||
@@ -169,23 +169,6 @@ async fn version_create_inner(
|
||||
));
|
||||
}
|
||||
|
||||
// Check whether there is already a version of this project with the
|
||||
// same version number
|
||||
let results = sqlx::query!(
|
||||
"SELECT EXISTS(SELECT 1 FROM versions WHERE (version_number = $1) AND (mod_id = $2))",
|
||||
version_create_data.version_number,
|
||||
project_id as models::ProjectId,
|
||||
)
|
||||
.fetch_one(&mut *transaction)
|
||||
.await?;
|
||||
|
||||
if results.exists.unwrap_or(true) {
|
||||
return Err(CreateError::InvalidInput(
|
||||
"A version with that version_number already exists"
|
||||
.to_string(),
|
||||
));
|
||||
}
|
||||
|
||||
// Check that the user creating this version is a team member
|
||||
// of the project the version is being added to.
|
||||
let team_member = models::TeamMember::get_from_user_id_project(
|
||||
@@ -367,10 +350,9 @@ async fn version_create_inner(
|
||||
)
|
||||
.fetch_many(&mut *transaction)
|
||||
.try_filter_map(|e| async {
|
||||
Ok(e.right()
|
||||
.map(|m| crate::database::models::ids::UserId(m.follower_id)))
|
||||
Ok(e.right().map(|m| models::ids::UserId(m.follower_id)))
|
||||
})
|
||||
.try_collect::<Vec<crate::database::models::ids::UserId>>()
|
||||
.try_collect::<Vec<models::ids::UserId>>()
|
||||
.await?;
|
||||
|
||||
let project_id: ProjectId = builder.project_id.into();
|
||||
|
||||
@@ -253,23 +253,6 @@ pub async fn version_edit(
|
||||
}
|
||||
|
||||
if let Some(number) = &new_version.version_number {
|
||||
let results = sqlx::query!(
|
||||
"SELECT EXISTS(SELECT 1 FROM versions WHERE (version_number = $1) AND (mod_id = $2))",
|
||||
number,
|
||||
version_item.project_id as database::models::ids::ProjectId,
|
||||
)
|
||||
.fetch_one(&mut *transaction)
|
||||
.await?;
|
||||
|
||||
if results.exists.unwrap_or(true)
|
||||
&& &version_item.version_number != number
|
||||
{
|
||||
return Err(ApiError::InvalidInput(
|
||||
"A version with that version_number already exists"
|
||||
.to_string(),
|
||||
));
|
||||
}
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
UPDATE versions
|
||||
|
||||
Reference in New Issue
Block a user