From c9732ccb3d0ba2f44db833c8bdc12db00f50d7df Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 13 Jul 2025 19:35:06 -0400 Subject: [PATCH] Moved responses module --- src/main.rs | 157 +---------------------------------------------- src/responses.rs | 16 +++++ 2 files changed, 18 insertions(+), 155 deletions(-) create mode 100644 src/responses.rs diff --git a/src/main.rs b/src/main.rs index 8532b50..376d232 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +pub mod api; +pub mod responses; pub mod the_rest; pub mod update_queued_song; pub mod util; @@ -375,158 +377,3 @@ pub async fn apply_metadata( Err(err) => Err(err), } } - -mod responses { - pub mod fetch_next_queue_item { - use serde::{Deserialize, Serialize}; - - #[derive(Debug, Deserialize, Serialize)] - pub struct QueueItem { - pub id: uuid::Uuid, - pub filename: String, - pub status: String, - } - - #[derive(Debug, Deserialize, Serialize)] - pub struct SongQueueItem { - pub message: String, - pub data: Vec, - } - } -} - -mod api { - pub async fn fetch_next_queue_item( - base_url: &String, - ) -> Result { - let client = reqwest::Client::new(); - let fetch_endpoint = String::from("api/v2/song/queue/next"); - let api_url = format!("{base_url}/{fetch_endpoint}"); - client.get(api_url).send().await - } - - pub mod parsing { - use futures::StreamExt; - - pub async fn parse_response_into_bytes( - response: reqwest::Response, - ) -> Result, reqwest::Error> { - // TODO: At some point, handle the flow if the size is small or - // large - let mut byte_stream = response.bytes_stream(); - let mut all_bytes = Vec::new(); - - while let Some(chunk) = byte_stream.next().await { - let chunk = chunk?; - all_bytes.extend_from_slice(&chunk); - } - - Ok(all_bytes) - } - } - - pub mod fetch_song_queue_data { - pub async fn get_data( - base_url: &String, - id: &uuid::Uuid, - ) -> Result { - let client = reqwest::Client::new(); - let endpoint = String::from("api/v2/song/queue"); - let api_url = format!("{base_url}/{endpoint}/{id}"); - client.get(api_url).send().await - } - } - - pub mod get_metadata_queue { - pub async fn get( - base_url: &String, - song_queue_id: &uuid::Uuid, - ) -> Result { - let client = reqwest::Client::new(); - let endpoint = String::from("api/v2/song/metadata/queue"); - let api_url = format!("{base_url}/{endpoint}"); - client - .get(api_url) - .query(&[("song_queue_id", song_queue_id)]) - .send() - .await - } - - pub mod response { - use serde::{Deserialize, Serialize}; - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Metadata { - pub song_queue_id: uuid::Uuid, - pub album: String, - pub album_artist: String, - pub artist: String, - pub disc: i32, - pub disc_count: i32, - pub duration: i64, - pub genre: String, - pub title: String, - pub track: i32, - pub track_count: i32, - pub year: i32, - } - - #[derive(Debug, Deserialize, Serialize)] - pub struct QueueItem { - pub id: uuid::Uuid, - pub metadata: Metadata, - #[serde(with = "time::serde::rfc3339")] - pub created_at: time::OffsetDateTime, - pub song_queue_id: uuid::Uuid, - } - - #[derive(Debug, Deserialize, Serialize)] - pub struct Response { - pub message: String, - pub data: Vec, - } - } - } - - pub mod get_coverart_queue { - pub async fn get( - base_url: &String, - song_queue_id: &uuid::Uuid, - ) -> Result { - let client = reqwest::Client::new(); - let endpoint = String::from("api/v2/coverart/queue"); - let api_url = format!("{base_url}/{endpoint}"); - client - .get(api_url) - .query(&[("song_queue_id", song_queue_id)]) - .send() - .await - } - - pub async fn get_data( - base_url: &String, - coverart_queue_id: &uuid::Uuid, - ) -> Result { - let client = reqwest::Client::new(); - let endpoint = String::from("api/v2/coverart/queue/data"); - let api_url = format!("{base_url}/{endpoint}/{coverart_queue_id}"); - client.get(api_url).send().await - } - - pub mod response { - use serde::{Deserialize, Serialize}; - - #[derive(Debug, Deserialize, Serialize)] - pub struct CoverArtQueue { - pub id: uuid::Uuid, - pub song_queue_id: uuid::Uuid, - } - - #[derive(Debug, Deserialize, Serialize)] - pub struct Response { - pub message: String, - pub data: Vec, - } - } - } -} diff --git a/src/responses.rs b/src/responses.rs new file mode 100644 index 0000000..c5a090e --- /dev/null +++ b/src/responses.rs @@ -0,0 +1,16 @@ +pub mod fetch_next_queue_item { + use serde::{Deserialize, Serialize}; + + #[derive(Debug, Deserialize, Serialize)] + pub struct QueueItem { + pub id: uuid::Uuid, + pub filename: String, + pub status: String, + } + + #[derive(Debug, Deserialize, Serialize)] + pub struct SongQueueItem { + pub message: String, + pub data: Vec, + } +}