diff --git a/src/services/task_creator.rs b/src/services/task_creator.rs index 735a979..1cfe6ff 100644 --- a/src/services/task_creator.rs +++ b/src/services/task_creator.rs @@ -179,7 +179,7 @@ pub async fn create_archive_task(key: String, data: CreateTask) { return; } - let final_filename = match get_filename(data.object_type, data.object_id).await { + let final_filename = match get_filename(data.object_type, data.object_id, data.file_format.clone()).await { Ok(v) => v, Err(err) => { set_task_error(key.clone(), "Can't get archive name!".to_string()).await; diff --git a/src/services/utils.rs b/src/services/utils.rs index 5e6d351..773f8ae 100644 --- a/src/services/utils.rs +++ b/src/services/utils.rs @@ -4,6 +4,7 @@ use tempfile::SpooledTempFile; use bytes::{Buf, Bytes}; use async_stream::stream; use translit::{gost779b_ru, Transliterator, CharsMapping}; +use smartstring::alias::String as SmartString; use std::io::{Seek, SeekFrom, Write, Read}; @@ -73,7 +74,7 @@ pub fn get_stream(mut temp_file: Box) -> impl futures_core::Str } -pub async fn get_filename(object_type: ObjectType, object_id: u32) -> Result> { +pub async fn get_filename(object_type: ObjectType, object_id: u32, file_format: SmartString) -> Result> { let result_filename = match object_type { ObjectType::Sequence => { match get_sequence(object_id).await { @@ -128,7 +129,7 @@ pub async fn get_filename(object_type: ObjectType, object_id: u32) -> Result