not all audio file has result files

Seto Elkahfi committed Aug 1, 2024 at 18:51 UTC 84802b6b7962c732327f4a4d9d9b9e4b9dd8f6c7
3 files changed +29 -9
frontend/splitfire-desktop/src-tauri/src/command/player_prepare.rs
+27 -7
@@ -57,13 +57,33 @@ pub async fn player_prepare(provider_id: String) -> PreparePlayerResponse {
57 }
58
59 async fn prepare_result_files(audio_file: AudioFile) -> PreparePlayerResponse {
60 - save_result_files(&audio_file.id.to_string(), &audio_file.results).await;
61 - download_result_files(audio_file.id.to_string(), audio_file.results).await;
62 - prepare_players(audio_file.id.to_string()).await;
63 - PreparePlayerResponse {
64 - status: TauriResponse::Success,
65 - message: "Success".to_string(),
66 - audio_file_name: Some(audio_file.name),
60 + debug!("Preparing result files: {:?}", audio_file);
61 + match audio_file.results {
62 + Some(results) => {
63 + if results.is_empty() {
64 + return PreparePlayerResponse {
65 + status: TauriResponse::Error,
66 + message: "No results found.".to_string(),
67 + audio_file_name: Some(audio_file.name),
68 + };
69 + }
70 + save_result_files(&audio_file.id.to_string(), &results).await;
71 + download_result_files(audio_file.id.to_string(), results).await;
72 + prepare_players(audio_file.id.to_string()).await;
73 + PreparePlayerResponse {
74 + status: TauriResponse::Success,
75 + message: "Success".to_string(),
76 + audio_file_name: Some(audio_file.name),
77 + }
78 + }
79 + None => {
80 + return PreparePlayerResponse {
81 + status: TauriResponse::Error,
82 + message: "No results found.".to_string(),
83 + audio_file_name: Some(audio_file.name),
84 + };
85 + }
86 +
87 }
88 }
89
frontend/splitfire-desktop/src-tauri/src/models/content.rs
+1 -1
@@ -12,7 +12,7 @@ pub struct ContentCarouselResponse {
12 #[derive(Serialize, Deserialize)]
13 #[derive(Debug)]
14 pub struct CarouselResponse {
15 - code: i32,
15 + pub code: i32,
16 pub message: String,
17 pub audio_files: Vec<SongProvider>,
18 }
frontend/splitfire-desktop/src-tauri/src/models/player.rs
+1 -1
@@ -39,7 +39,7 @@ pub struct AudioFile {
39 pub id: i32,
40 pub name: String,
41 pub status: Status,
42 - pub results: Vec<ResultFile>,
42 + pub results: Option<Vec<ResultFile>>,
43 }
44
45 #[derive(Serialize, Deserialize)]