feat(api): shortcut methods for following & followers

master
Paul Woolcock 6 years ago
parent d524a64bfd
commit 4dd40422b3
  1. 25
      examples/follows_me.rs
  2. 12
      src/lib.rs
  3. 43
      src/mastodon_client.rs

@ -0,0 +1,25 @@
#![cfg_attr(not(feature = "toml"), allow(dead_code))]
#![cfg_attr(not(feature = "toml"), allow(unused_imports))]
mod register;
use register::MastodonClient;
use std::error;
#[cfg(feature = "toml")]
fn main() -> Result<(), Box<error::Error>> {
let mastodon = register::get_mastodon_data()?;
for account in mastodon.follows_me()?.items_iter() {
println!("{}", account.acct);
}
Ok(())
}
#[cfg(not(feature = "toml"))]
fn main() {
println!(
"examples require the `toml` feature, run this command for this example:\n\ncargo run \
--example print_your_profile --features toml\n"
);
}

@ -407,6 +407,18 @@ impl<H: HttpSend> MastodonClient<H> for Mastodon<H> {
deserialise(response)
}
/// Get all accounts that follow the authenticated user
fn follows_me(&self) -> Result<Page<Account, H>> {
let me = self.verify_credentials()?;
Ok(self.followers(&me.id)?)
}
/// Get all accounts that the authenticated user follows
fn followed_by_me(&self) -> Result<Page<Account, H>> {
let me = self.verify_credentials()?;
Ok(self.following(&me.id)?)
}
}
impl<H: HttpSend> ops::Deref for Mastodon<H> {

@ -273,4 +273,47 @@ pub trait MastodonClient<H: HttpSend = HttpSender> {
fn unendorse_user(&self, id: &str) -> Result<Relationship> {
unimplemented!("This method was not implemented");
}
/// Shortcut for: `let me = client.verify_credentials(); client.followers()`
///
/// ```no_run
/// # extern crate elefren;
/// # use std::error::Error;
/// # use elefren::prelude::*;
/// # fn main() -> Result<(), Box<Error>> {
/// # let data = Data {
/// # base: "".into(),
/// # client_id: "".into(),
/// # client_secret: "".into(),
/// # redirect: "".into(),
/// # token: "".into(),
/// # };
/// # let client = Mastodon::from(data);
/// let follows_me = client.follows_me()?;
/// # Ok(())
/// # }
fn follows_me(&self) -> Result<Page<Account, H>> {
unimplemented!("This method was not implemented");
}
/// Shortcut for
/// `let me = client.verify_credentials(); client.following(&me.id)`
///
/// ```no_run
/// # extern crate elefren;
/// # use std::error::Error;
/// # use elefren::prelude::*;
/// # fn main() -> Result<(), Box<Error>> {
/// # let data = Data {
/// # base: "".into(),
/// # client_id: "".into(),
/// # client_secret: "".into(),
/// # redirect: "".into(),
/// # token: "".into(),
/// # };
/// # let client = Mastodon::from(data);
/// let follows_me = client.followed_by_me()?;
/// # Ok(())
/// # }
fn followed_by_me(&self) -> Result<Page<Account, H>> {
unimplemented!("This method was not implemented");
}
}

Loading…
Cancel
Save