oura 2.2.0

The tail of Cardano
Documentation
use std::collections::HashMap;

use reqwest::header;

use crate::framework::Error;

pub static APP_USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"));

pub fn build_headers_map(
    authorization: Option<&String>,
    extra: Option<&HashMap<String, String>>,
) -> Result<header::HeaderMap, Error> {
    let mut headers = header::HeaderMap::new();

    headers.insert(
        header::CONTENT_TYPE,
        header::HeaderValue::try_from("application/json").map_err(Error::config)?,
    );

    if let Some(auth_value) = &authorization {
        let auth_value = header::HeaderValue::try_from(*auth_value).map_err(Error::config)?;
        headers.insert(header::AUTHORIZATION, auth_value);
    }

    if let Some(custom) = &extra {
        for (name, value) in custom.iter() {
            let name = header::HeaderName::try_from(name).map_err(Error::config)?;
            let value = header::HeaderValue::try_from(value).map_err(Error::config)?;
            headers.insert(name, value);
        }
    }

    Ok(headers)
}