mirror of
https://gitlab.com/hladislav/radiobrowser-lib-rust.git
synced 2025-04-29 23:34:12 +00:00
nicer test
This commit is contained in:
parent
681f1c67dc
commit
ea788a7c01
3 changed files with 11 additions and 25 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -1,9 +1,2 @@
|
|||
/target
|
||||
|
||||
|
||||
# Added by cargo
|
||||
#
|
||||
# already existing elements were commented out
|
||||
|
||||
#/target
|
||||
/Cargo.lock
|
||||
|
|
|
@ -5,7 +5,9 @@ use std::error::Error;
|
|||
async fn main() -> Result<(), Box<dyn Error>> {
|
||||
let servers = radiobrowser_lib_rust::get_servers().await?;
|
||||
println!("Servers: {:?}", servers);
|
||||
let config: ApiConfig = radiobrowser_lib_rust::get_server_config().await?;
|
||||
for server in servers {
|
||||
let config: ApiConfig = radiobrowser_lib_rust::get_server_config(server).await?;
|
||||
println!("{:#?}", config);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
|
23
src/lib.rs
23
src/lib.rs
|
@ -2,6 +2,10 @@ use reqwest;
|
|||
use serde::Deserialize;
|
||||
use std::error::Error;
|
||||
|
||||
use async_std_resolver::proto::rr::RecordType;
|
||||
use async_std_resolver::proto::xfer::DnsRequestOptions;
|
||||
use async_std_resolver::{config, resolver};
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct ApiConfig {
|
||||
pub check_enabled: bool,
|
||||
|
@ -28,10 +32,10 @@ pub struct ApiConfig {
|
|||
pub language_to_code_filepath: String,
|
||||
}
|
||||
|
||||
pub async fn get_server_config() -> Result<ApiConfig, Box<dyn Error>> {
|
||||
pub async fn get_server_config<P: AsRef<str>>(server: P) -> Result<ApiConfig, Box<dyn Error>> {
|
||||
let client = reqwest::Client::new();
|
||||
let res = client
|
||||
.post("https://de1.api.radio-browser.info/json/config")
|
||||
.post(format!("https://{}/json/config", server.as_ref()))
|
||||
.send()
|
||||
.await?
|
||||
.json::<ApiConfig>()
|
||||
|
@ -39,10 +43,6 @@ pub async fn get_server_config() -> Result<ApiConfig, Box<dyn Error>> {
|
|||
Ok(res)
|
||||
}
|
||||
|
||||
use async_std_resolver::proto::rr::RecordType;
|
||||
use async_std_resolver::proto::xfer::DnsRequestOptions;
|
||||
use async_std_resolver::{config, resolver};
|
||||
|
||||
pub async fn get_servers() -> Result<Vec<String>, Box<dyn Error>> {
|
||||
// Construct a new Resolver with default configuration options
|
||||
let resolver = resolver(
|
||||
|
@ -67,16 +67,7 @@ pub async fn get_servers() -> Result<Vec<String>, Box<dyn Error>> {
|
|||
let list = response
|
||||
.iter()
|
||||
.filter_map(|entry| entry.as_srv())
|
||||
.map(|entry| entry.target().to_string())
|
||||
.map(|entry| entry.target().to_string().trim_matches('.').to_string())
|
||||
.collect();
|
||||
Ok(list)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
#[test]
|
||||
fn it_works() {
|
||||
let result = 2 + 2;
|
||||
assert_eq!(result, 4);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue