use http::HeaderMap;
use http::header::WWW_AUTHENTICATE;
use url::Url;
use crate::error::Error;
pub(super) async fn dispatch(
url: &Url,
request: reqwest::RequestBuilder,
) -> Result<reqwest::Response, Error> {
request.send().await.map_err(|source| {
if source.is_timeout() {
Error::Timeout {
url: url.clone(),
source,
}
} else {
Error::Transport {
url: url.clone(),
source,
}
}
})
}
pub(super) fn challenge(headers: &HeaderMap) -> Option<String> {
headers
.get(WWW_AUTHENTICATE)
.and_then(|value| value.to_str().ok())
.map(str::to_owned)
}