aboutsummaryrefslogtreecommitdiff
path: root/src/utils/bitcoins.rs
blob: 94a0a3b594ec2f2d8eafb1b8e862b11d661e2f43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use crate::config::CONFIG;
use crate::types::ThreadsData;
use serde::Deserialize;

#[derive(Deserialize)]
struct Response {
    price_24h: f64,
}

pub async fn get_price() -> ThreadsData {
    let url = format!(
        "https://api.blockchain.com/v3/exchange/tickers/{}",
        CONFIG.bitcoins.symbol
    );
    let _err = String::from("Error");
    let res = match minreq::get(url).send() {
        Ok(resp) => match resp.json::<Response>() {
            Ok(data) => data.price_24h.to_string(),
            _ => _err,
        },
        Err(_) => _err,
    };

    let data = format!("  {}  {}  {}", CONFIG.bitcoins.icon, res, CONFIG.seperator);
    ThreadsData::BitCoins(data)
}