fetch song queue data #21
29
src/main.rs
29
src/main.rs
@@ -28,10 +28,16 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
{
|
{
|
||||||
Ok(response) => {
|
Ok(response) => {
|
||||||
// Process data here...
|
// Process data here...
|
||||||
let all_bytes = api::fetch_song_queue_data::response::parse_response(response).await?;
|
let all_bytes =
|
||||||
|
api::fetch_song_queue_data::response::parse_response(
|
||||||
|
response,
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
let (directory, filename) = generate_song_queue_dir_and_filename().await;
|
let (directory, filename) =
|
||||||
let save_path = save_song_to_fs(&directory, &filename, &all_bytes).await;
|
generate_song_queue_dir_and_filename().await;
|
||||||
|
let save_path =
|
||||||
|
save_song_to_fs(&directory, &filename, &all_bytes).await;
|
||||||
|
|
||||||
println!("Saved at: {:?}", save_path);
|
println!("Saved at: {:?}", save_path);
|
||||||
|
|
||||||
@@ -69,10 +75,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
// TODO: Consider having something like this in icarus_models
|
// TODO: Consider having something like this in icarus_models
|
||||||
pub async fn generate_song_queue_dir_and_filename() -> (String, String) {
|
pub async fn generate_song_queue_dir_and_filename() -> (String, String) {
|
||||||
let mut song = icarus_models::song::Song::default();
|
let mut song = icarus_models::song::Song::default();
|
||||||
song.filename = song.generate_filename(
|
song.filename = song.generate_filename(icarus_models::types::MusicTypes::FlacExtension, true);
|
||||||
icarus_models::types::MusicTypes::FlacExtension,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
|
|
||||||
song.directory = icarus_envy::environment::get_root_directory().await;
|
song.directory = icarus_envy::environment::get_root_directory().await;
|
||||||
|
|
||||||
@@ -80,7 +83,11 @@ pub async fn generate_song_queue_dir_and_filename() -> (String, String) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Check to see if this is available in icarus_models
|
// TODO: Check to see if this is available in icarus_models
|
||||||
pub async fn save_song_to_fs(directory: &String, filename: &String, data: &Vec<u8>) -> std::path::PathBuf {
|
pub async fn save_song_to_fs(
|
||||||
|
directory: &String,
|
||||||
|
filename: &String,
|
||||||
|
data: &Vec<u8>,
|
||||||
|
) -> std::path::PathBuf {
|
||||||
// TODO: Add function to save bytes to a file in icarus_models
|
// TODO: Add function to save bytes to a file in icarus_models
|
||||||
// repo
|
// repo
|
||||||
let dir = std::path::Path::new(directory);
|
let dir = std::path::Path::new(directory);
|
||||||
@@ -92,7 +99,6 @@ pub async fn save_song_to_fs(directory: &String, filename: &String, data: &Vec<u
|
|||||||
save_path
|
save_path
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
mod responses {
|
mod responses {
|
||||||
pub mod fetch_next_queue_item {
|
pub mod fetch_next_queue_item {
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@@ -138,8 +144,9 @@ mod api {
|
|||||||
// use serde::{Deserialize, Serialize};
|
// use serde::{Deserialize, Serialize};
|
||||||
// pub struct Response {
|
// pub struct Response {
|
||||||
// }
|
// }
|
||||||
pub async fn parse_response(response: reqwest::Response) -> Result<Vec<u8>, reqwest::Error> {
|
pub async fn parse_response(
|
||||||
|
response: reqwest::Response,
|
||||||
|
) -> Result<Vec<u8>, reqwest::Error> {
|
||||||
// TODO: At some point, handle the flow if the size is small or
|
// TODO: At some point, handle the flow if the size is small or
|
||||||
// large
|
// large
|
||||||
let mut byte_stream = response.bytes_stream();
|
let mut byte_stream = response.bytes_stream();
|
||||||
|
Reference in New Issue
Block a user