From 3a80d4769fcc2b8e417c75fbac197b521acf6f8e Mon Sep 17 00:00:00 2001 From: mii443 Date: Sun, 27 Apr 2025 17:10:45 +0900 Subject: [PATCH] add speakers list --- src/restapi.rs | 12 +++++++++++- src/types/mod.rs | 1 + src/types/speaker.rs | 21 +++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/types/speaker.rs diff --git a/src/restapi.rs b/src/restapi.rs index 68f73cf..e1d999b 100644 --- a/src/restapi.rs +++ b/src/restapi.rs @@ -1,4 +1,4 @@ -use crate::types::audio_query::AudioQueryType; +use crate::types::{audio_query::AudioQueryType, speaker::Speaker}; use bytes::Bytes; use reqwest::{header::HeaderMap, Client, RequestBuilder, Result}; @@ -62,4 +62,14 @@ impl RestAPI { .await?; Ok(data) } + + pub async fn speakers(&self) -> Result> { + let speakers = self + .request("GET", "/speakers") + .send() + .await? + .json() + .await?; + Ok(speakers) + } } diff --git a/src/types/mod.rs b/src/types/mod.rs index 6fa1a3a..cfea91b 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -1 +1,2 @@ pub mod audio_query; +pub mod speaker; diff --git a/src/types/speaker.rs b/src/types/speaker.rs new file mode 100644 index 0000000..5f1ff04 --- /dev/null +++ b/src/types/speaker.rs @@ -0,0 +1,21 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct Speaker { + pub supported_features: SupportedFeatures, + pub name: String, + pub speaker_uuid: String, + pub styles: Vec