aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2018-08-07 20:07:37 +0200
committerHarald Eilertsen <haraldei@anduin.net>2018-08-07 20:07:37 +0200
commit540f8e4dd046ba37bd692fe96b15df4fe5ddec4c (patch)
tree861b25bd481f205af0559d46176f856ac2ad3c91 /src
parentfb3d996d90f9e496654ae4485b9d036dcc7baf8a (diff)
downloadrust-zotapi-540f8e4dd046ba37bd692fe96b15df4fe5ddec4c.tar.gz
rust-zotapi-540f8e4dd046ba37bd692fe96b15df4fe5ddec4c.tar.bz2
rust-zotapi-540f8e4dd046ba37bd692fe96b15df4fe5ddec4c.zip
Pass authorization info to endpoint.
It seems like Hubzilla will accept basic authorization info in the first request. This does not follow the described signal flow for basic authorization, but for now we'll use whatever works.
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 60ac388..c2d77ee 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,16 +1,28 @@
extern crate reqwest;
+use reqwest::{
+ header::{Accept, qitem},
+ mime,
+};
use std::io::Read;
const ZOTAPI_CHANNEL_STREAM_PATH : &str = "/api/z/1.0/channel/stream";
pub struct Client {
+ inner: reqwest::Client,
base_url: String,
+ user: String,
+ pw: String,
}
impl Client {
pub fn channel_stream(&self) -> String {
- let mut res = reqwest::get(&self.channel_stream_url()).unwrap();
+ let mut res = self.inner.get(&self.channel_stream_url())
+ .header(Accept(vec![qitem(mime::APPLICATION_JSON)]))
+ .basic_auth(self.user.clone(), Some(self.pw.clone()))
+ .send()
+ .unwrap();
+
let mut body = String::new();
res.read_to_string(&mut body).unwrap();
body
@@ -21,12 +33,13 @@ impl Client {
}
}
-pub fn client<T>(url: T) -> Client
-where
- T: Into<String>
+pub fn client(url: &str, user: &str, pw: &str) -> Client
{
Client {
- base_url: url.into(),
+ inner: reqwest::Client::new(),
+ base_url: String::from(url),
+ user: String::from(user),
+ pw: String::from(pw),
}
}