Update code to be compatible with reqwest 0.9
This commit is contained in:
+1
-1
@@ -9,7 +9,7 @@ pub trait HttpSend: Clone + Debug {
|
||||
|
||||
/// Convenience method so that .build() doesn't have to be called at every
|
||||
/// call site
|
||||
fn send(&self, client: &Client, builder: &mut RequestBuilder) -> Result<Response> {
|
||||
fn send(&self, client: &Client, builder: RequestBuilder) -> Result<Response> {
|
||||
let request = builder.build()?;
|
||||
self.execute(client, request)
|
||||
}
|
||||
|
||||
+6
-17
@@ -46,6 +46,7 @@
|
||||
extern crate serde_derive;
|
||||
#[macro_use]
|
||||
extern crate doc_comment;
|
||||
extern crate hyper_old_types;
|
||||
extern crate isolang;
|
||||
#[macro_use]
|
||||
extern crate serde_json;
|
||||
@@ -72,12 +73,7 @@ extern crate indoc;
|
||||
|
||||
use std::{borrow::Cow, ops};
|
||||
|
||||
use reqwest::{
|
||||
header::{Authorization, Bearer, Headers},
|
||||
Client,
|
||||
RequestBuilder,
|
||||
Response,
|
||||
};
|
||||
use reqwest::{Client, RequestBuilder, Response};
|
||||
use tap_reader::Tap;
|
||||
|
||||
use entities::prelude::*;
|
||||
@@ -139,7 +135,6 @@ pub mod prelude {
|
||||
pub struct Mastodon<H: HttpSend = HttpSender> {
|
||||
client: Client,
|
||||
http_sender: H,
|
||||
headers: Headers,
|
||||
/// Raw data about your mastodon instance.
|
||||
pub data: Data,
|
||||
}
|
||||
@@ -151,10 +146,10 @@ impl<H: HttpSend> Mastodon<H> {
|
||||
format!("{}{}", self.base, url)
|
||||
}
|
||||
|
||||
pub(crate) fn send(&self, req: &mut RequestBuilder) -> Result<Response> {
|
||||
pub(crate) fn send(&self, req: RequestBuilder) -> Result<Response> {
|
||||
Ok(self
|
||||
.http_sender
|
||||
.send(&self.client, req.headers(self.headers.clone()))?)
|
||||
.send(&self.client, req.bearer_auth(&self.token))?)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -361,7 +356,7 @@ impl<H: HttpSend> MastodonClient<H> for Mastodon<H> {
|
||||
url = format!("{}{}", url, request.to_querystring());
|
||||
}
|
||||
|
||||
let response = self.send(&mut self.client.get(&url))?;
|
||||
let response = self.send(self.client.get(&url))?;
|
||||
|
||||
Page::new(self, response)
|
||||
}
|
||||
@@ -383,7 +378,7 @@ impl<H: HttpSend> MastodonClient<H> for Mastodon<H> {
|
||||
url.pop();
|
||||
}
|
||||
|
||||
let response = self.send(&mut self.client.get(&url))?;
|
||||
let response = self.send(self.client.get(&url))?;
|
||||
|
||||
Page::new(self, response)
|
||||
}
|
||||
@@ -449,15 +444,9 @@ impl<H: HttpSend> MastodonBuilder<H> {
|
||||
|
||||
pub fn build(self) -> Result<Mastodon<H>> {
|
||||
Ok(if let Some(data) = self.data {
|
||||
let mut headers = Headers::new();
|
||||
headers.set(Authorization(Bearer {
|
||||
token: (*data.token).to_owned(),
|
||||
}));
|
||||
|
||||
Mastodon {
|
||||
client: self.client.unwrap_or_else(|| Client::new()),
|
||||
http_sender: self.http_sender,
|
||||
headers,
|
||||
data,
|
||||
}
|
||||
} else {
|
||||
|
||||
+4
-4
@@ -5,7 +5,7 @@ macro_rules! methods {
|
||||
-> Result<T>
|
||||
{
|
||||
let response = self.send(
|
||||
&mut self.client.$method(&url)
|
||||
self.client.$method(&url)
|
||||
)?;
|
||||
|
||||
deserialise(response)
|
||||
@@ -43,7 +43,7 @@ macro_rules! paged_routes {
|
||||
fn $name(&self) -> Result<Page<$ret, H>> {
|
||||
let url = self.route(concat!("/api/v1/", $url));
|
||||
let response = self.send(
|
||||
&mut self.client.$method(&url)
|
||||
self.client.$method(&url)
|
||||
)?;
|
||||
|
||||
Page::new(self, response)
|
||||
@@ -88,7 +88,7 @@ macro_rules! paged_routes {
|
||||
let url = format!(concat!("/api/v1/", $url, "?{}"), &qs);
|
||||
|
||||
let response = self.send(
|
||||
&mut self.client.get(&url)
|
||||
self.client.get(&url)
|
||||
)?;
|
||||
|
||||
Page::new(self, response)
|
||||
@@ -350,7 +350,7 @@ macro_rules! paged_routes_with_id {
|
||||
fn $name(&self, id: &str) -> Result<Page<$ret, H>> {
|
||||
let url = self.route(&format!(concat!("/api/v1/", $url), id));
|
||||
let response = self.send(
|
||||
&mut self.client.$method(&url)
|
||||
self.client.$method(&url)
|
||||
)?;
|
||||
|
||||
Page::new(self, response)
|
||||
|
||||
+7
-6
@@ -1,9 +1,7 @@
|
||||
use super::{deserialise, Mastodon, Result};
|
||||
use entities::itemsiter::ItemsIter;
|
||||
use reqwest::{
|
||||
header::{Link, RelationType},
|
||||
Response,
|
||||
};
|
||||
use hyper_old_types::header::{parsing, Link, RelationType};
|
||||
use reqwest::{header::LINK, Response};
|
||||
use serde::Deserialize;
|
||||
use url::Url;
|
||||
|
||||
@@ -32,7 +30,7 @@ macro_rules! pages {
|
||||
};
|
||||
|
||||
let response = self.mastodon.send(
|
||||
&mut self.mastodon.client.get(url)
|
||||
self.mastodon.client.get(url)
|
||||
)?;
|
||||
|
||||
let (prev, next) = get_links(&response)?;
|
||||
@@ -108,7 +106,10 @@ fn get_links(response: &Response) -> Result<(Option<Url>, Option<Url>)> {
|
||||
let mut prev = None;
|
||||
let mut next = None;
|
||||
|
||||
if let Some(link_header) = response.headers().get::<Link>() {
|
||||
if let Some(link_header) = response.headers().get(LINK) {
|
||||
let link_header = link_header.to_str().unwrap();
|
||||
let link_header = link_header.as_bytes();
|
||||
let link_header: Link = parsing::from_raw_str(&link_header).unwrap();
|
||||
for value in link_header.values() {
|
||||
if let Some(relations) = value.rel() {
|
||||
if relations.contains(&RelationType::Next) {
|
||||
|
||||
+3
-3
@@ -99,7 +99,7 @@ impl<'a, H: HttpSend> Registration<'a, H> {
|
||||
self
|
||||
}
|
||||
|
||||
fn send(&self, req: &mut RequestBuilder) -> Result<Response> {
|
||||
fn send(&self, req: RequestBuilder) -> Result<Response> {
|
||||
Ok(self.http_sender.send(&self.client, req)?)
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ impl<'a, H: HttpSend> Registration<'a, H> {
|
||||
}
|
||||
|
||||
impl<H: HttpSend> Registered<H> {
|
||||
fn send(&self, req: &mut RequestBuilder) -> Result<Response> {
|
||||
fn send(&self, req: RequestBuilder) -> Result<Response> {
|
||||
Ok(self.http_sender.send(&self.client, req)?)
|
||||
}
|
||||
|
||||
@@ -213,7 +213,7 @@ impl<H: HttpSend> Registered<H> {
|
||||
self.redirect
|
||||
);
|
||||
|
||||
let token: AccessToken = self.send(&mut self.client.post(&url))?.json()?;
|
||||
let token: AccessToken = self.send(self.client.post(&url))?.json()?;
|
||||
|
||||
let data = Data {
|
||||
base: self.base.into(),
|
||||
|
||||
Reference in New Issue
Block a user