From cc8207865b950de54fa3d20ee7b2bb9b29382c67 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Thu, 23 Aug 2018 20:20:54 +0200 Subject: Add fetching xchans by guid and has too. --- src/xchan.rs | 10 ++++++++++ tests/zotapi.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/xchan.rs b/src/xchan.rs index 564531a..88b3cb1 100644 --- a/src/xchan.rs +++ b/src/xchan.rs @@ -36,6 +36,16 @@ impl<'a> XChanFetcher<'a> { self } + pub fn by_hash(&mut self, hash: &'a str) -> &mut XChanFetcher<'a> { + self.data.insert("hash", hash); + self + } + + pub fn by_guid(&mut self, guid: &'a str) -> &mut XChanFetcher<'a> { + self.data.insert("guid", guid); + self + } + pub fn fetch(&self) -> Result { self.client.fetch_stream(client::ZOTAPI_XCHAN_PATH, &self.data) } diff --git a/tests/zotapi.rs b/tests/zotapi.rs index ef58171..81210db 100644 --- a/tests/zotapi.rs +++ b/tests/zotapi.rs @@ -114,3 +114,31 @@ fn fetch_xchan_by_address() { let _res = z.xchan().by_address("test@test.com").fetch().unwrap(); m.assert(); } + +#[test] +fn fetch_xchan_by_hash() { + let m = mock("GET", "/api/z/1.0/xchan?hash=baffebaff") + .match_header("Authorization", Matcher::Regex(r"Basic \w+".into())) + .with_status(200) + .with_header("content-type", "application/json") + .with_body("{}") + .create(); + + let z = zotapi::client(&format!("http://{}", mockito::SERVER_ADDRESS), "testuser", "test1234"); + let _res = z.xchan().by_hash("baffebaff").fetch().unwrap(); + m.assert(); +} + +#[test] +fn fetch_xchan_by_guid() { + let m = mock("GET", "/api/z/1.0/xchan?guid=baffebaff-baff-baff") + .match_header("Authorization", Matcher::Regex(r"Basic \w+".into())) + .with_status(200) + .with_header("content-type", "application/json") + .with_body("{}") + .create(); + + let z = zotapi::client(&format!("http://{}", mockito::SERVER_ADDRESS), "testuser", "test1234"); + let _res = z.xchan().by_guid("baffebaff-baff-baff").fetch().unwrap(); + m.assert(); +} -- cgit v1.2.3