You've already forked AstralRinth
forked from didirus/AstralRinth
Fix file type setting (#510)
Co-authored-by: triphora <emmaffle@modrinth.com>
This commit is contained in:
@@ -23,6 +23,7 @@ use chrono::Utc;
|
|||||||
use futures::stream::StreamExt;
|
use futures::stream::StreamExt;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use sqlx::postgres::PgPool;
|
use sqlx::postgres::PgPool;
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use validator::Validate;
|
use validator::Validate;
|
||||||
|
|
||||||
@@ -62,13 +63,14 @@ pub struct InitialVersionData {
|
|||||||
pub primary_file: Option<String>,
|
pub primary_file: Option<String>,
|
||||||
#[serde(default = "default_requested_status")]
|
#[serde(default = "default_requested_status")]
|
||||||
pub status: VersionStatus,
|
pub status: VersionStatus,
|
||||||
#[serde(default = "Vec::new")]
|
#[serde(default = "HashMap::new")]
|
||||||
pub file_types: Vec<(String, FileType)>,
|
pub file_types: HashMap<String, FileType>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Clone)]
|
#[derive(Serialize, Deserialize, Clone)]
|
||||||
struct InitialFileData {
|
struct InitialFileData {
|
||||||
pub file_type: Option<FileType>,
|
#[serde(default = "HashMap::new")]
|
||||||
|
pub file_types: HashMap<String, FileType>,
|
||||||
}
|
}
|
||||||
|
|
||||||
// under `/api/v1/version`
|
// under `/api/v1/version`
|
||||||
@@ -328,11 +330,7 @@ async fn version_create_inner(
|
|||||||
all_game_versions.clone(),
|
all_game_versions.clone(),
|
||||||
version_data.primary_file.is_some(),
|
version_data.primary_file.is_some(),
|
||||||
version_data.primary_file.as_deref() == Some(name),
|
version_data.primary_file.as_deref() == Some(name),
|
||||||
version_data
|
version_data.file_types.get(name).copied(),
|
||||||
.file_types
|
|
||||||
.iter()
|
|
||||||
.find(|x| x.0 == name)
|
|
||||||
.map(|x| x.1),
|
|
||||||
transaction,
|
transaction,
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
@@ -594,7 +592,7 @@ async fn upload_file_to_version_inner(
|
|||||||
.map(|x| DependencyBuilder {
|
.map(|x| DependencyBuilder {
|
||||||
project_id: x.project_id,
|
project_id: x.project_id,
|
||||||
version_id: x.version_id,
|
version_id: x.version_id,
|
||||||
file_name: None,
|
file_name: x.file_name.clone(),
|
||||||
dependency_type: x.dependency_type.clone(),
|
dependency_type: x.dependency_type.clone(),
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
@@ -621,7 +619,7 @@ async fn upload_file_to_version_inner(
|
|||||||
all_game_versions.clone(),
|
all_game_versions.clone(),
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
file_data.file_type,
|
file_data.file_types.get(name).copied(),
|
||||||
transaction,
|
transaction,
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
Reference in New Issue
Block a user