From b08fc14aa5d81287b4a24765a09c6b6fbff88be5 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Fri, 31 May 2024 12:34:15 +0200 Subject: Properly deserialize channels vec --- src/channels.rs | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/channels.rs') diff --git a/src/channels.rs b/src/channels.rs index 257fa02..0b8acd6 100644 --- a/src/channels.rs +++ b/src/channels.rs @@ -1,12 +1,23 @@ use serde::Deserialize; -#[derive(Deserialize)] -#[allow(dead_code)] -struct Channel { - id: String, - title: String, - description: String, - image: String, +#[derive(Deserialize, Debug)] +pub struct Channel { + pub id: String, + pub title: String, + pub description: String, + pub image: String, +} + +#[derive(Deserialize, Debug)] +pub struct Channels { + pub channels: Vec, +} + +pub fn get_channels() -> Vec { + let url = "https://api.somafm.com/channels.json"; + let res = reqwest::blocking::get(url).unwrap().text().unwrap(); + let channels: Channels = serde_json::from_str(&res).unwrap(); + channels.channels } mod tests { -- cgit v1.3.1