From 6aaab09601db5319f945005eea127c96d205279d Mon Sep 17 00:00:00 2001 From: Geometrically <18202329+Geometrically@users.noreply.github.com> Date: Mon, 26 Dec 2022 13:21:37 -0700 Subject: [PATCH] Fix file type setting (#510) Co-authored-by: triphora --- src/routes/version_creation.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/routes/version_creation.rs b/src/routes/version_creation.rs index 95f591eb3..4b6f81621 100644 --- a/src/routes/version_creation.rs +++ b/src/routes/version_creation.rs @@ -23,6 +23,7 @@ use chrono::Utc; use futures::stream::StreamExt; use serde::{Deserialize, Serialize}; use sqlx::postgres::PgPool; +use std::collections::HashMap; use std::sync::Arc; use validator::Validate; @@ -62,13 +63,14 @@ pub struct InitialVersionData { pub primary_file: Option, #[serde(default = "default_requested_status")] pub status: VersionStatus, - #[serde(default = "Vec::new")] - pub file_types: Vec<(String, FileType)>, + #[serde(default = "HashMap::new")] + pub file_types: HashMap, } #[derive(Serialize, Deserialize, Clone)] struct InitialFileData { - pub file_type: Option, + #[serde(default = "HashMap::new")] + pub file_types: HashMap, } // under `/api/v1/version` @@ -328,11 +330,7 @@ async fn version_create_inner( all_game_versions.clone(), version_data.primary_file.is_some(), version_data.primary_file.as_deref() == Some(name), - version_data - .file_types - .iter() - .find(|x| x.0 == name) - .map(|x| x.1), + version_data.file_types.get(name).copied(), transaction, ) .await?; @@ -594,7 +592,7 @@ async fn upload_file_to_version_inner( .map(|x| DependencyBuilder { project_id: x.project_id, version_id: x.version_id, - file_name: None, + file_name: x.file_name.clone(), dependency_type: x.dependency_type.clone(), }) .collect(); @@ -621,7 +619,7 @@ async fn upload_file_to_version_inner( all_game_versions.clone(), true, false, - file_data.file_type, + file_data.file_types.get(name).copied(), transaction, ) .await?;