flickr 0.0.1

Rust binding to Flickr API
Documentation

///
/// Methods for flickr.favorites.*
///

use super::*;
use super::super::*;

// ---- Builder -----------------------------------------------------------------------------------

/// Builder for flickr.favorites.* methods.
pub struct Builder<'a> {
    flickr: &'a mut FlickrAPI,
}

impl<'a> Builder<'a> {
    pub fn new(flickr: &mut FlickrAPI) -> Builder {
        Builder {
            flickr: flickr,
        }
    }

    /// Builder for method flickr.favorites.getList.
    pub fn get_list(&mut self) -> GetListBuilder {
        GetListBuilder::new(self.flickr)
    }

    /// Builder for method flickr.favorites.getContext.
    pub fn get_context(&mut self) -> GetContextBuilder {
        GetContextBuilder::new(self.flickr)
    }

    /// Builder for method flickr.favorites.Add.
    pub fn add(&mut self) -> AddBuilder {
        AddBuilder::new(self.flickr)
    }

    /// Builder for method flickr.favorites.Remove.
    pub fn remove(&mut self) -> RemoveBuilder {
        RemoveBuilder::new(self.flickr)
    }

    /// Builder for method flickr.favorites.getPublicList.
    pub fn get_public_list(&mut self) -> GetPublicListBuilder {
        GetPublicListBuilder::new(self.flickr)
    }

}

// ---- GetListBuilder ----------------------------------------------------------------------------

/// Builder for flickr.favorites.getList.
pub struct GetListBuilder<'a> {
    flickr: &'a mut FlickrAPI,

    user_id: Option<String>,
    min_fave_date: Option<u128>,
    max_fave_date: Option<u128>,
    extras: Option<String>,
    per_page: Option<i32>,
    page: Option<i32>,
}

impl<'a> GetListBuilder<'a> {
    pub fn new(flickr: &mut FlickrAPI) -> GetListBuilder {
        GetListBuilder {
            flickr: flickr,
            user_id: Option::None,
            min_fave_date: Option::None,
            max_fave_date: Option::None,
            extras: Option::None,
            per_page: Option::None,
            page: Option::None,
        }
    }

    implement_setters!(self
        ; 
        ; user_id: String, min_fave_date: u128, max_fave_date: u128, extras: String, per_page: i32, page: i32
        );


    implement_perform!(self, GetListResult, "flickr.favorites.getList" 
        ; 
        ; user_id: String, min_fave_date: u128, max_fave_date: u128, extras: String, per_page: i32, page: i32
        );
}

// ---- GetListResult -----------------------------------------------------------------------------
#[derive(Deserialize, Debug)]
pub struct GetListResult {
  #[serde(default)]
  pub stat: String,

  #[serde(default)]
  pub code: i32,

  #[serde(default)]
  pub message: String,

  #[serde(default)]
  pub photos: Option<Photos>,
}

// ---- Photos ------------------------------------------------------------------------------------
#[derive(Deserialize, Debug)]
pub struct Photos {
  #[serde(default)]
  pub page: i32,

  #[serde(default)]
  pub pages: i32,

  #[serde(default)]
  pub perpage: i32,

  #[serde(deserialize_with = "i32_from_string", default)]
  pub total: i32,

  #[serde(default)]
  pub photo: Vec<Photo>,
}

// ---- Photo -------------------------------------------------------------------------------------
#[derive(Deserialize, Debug)]
pub struct Photo {
  pub id: String,
  pub owner: String,
  #[serde(default)]
  pub secret: String,
  #[serde(default)]
  pub server: String,
  #[serde(default)]
  pub farm: i32,
  #[serde(default)]
  pub title: String,
  #[serde(deserialize_with = "bool_from_int", default)]
  pub ispublic: bool,
  #[serde(deserialize_with = "bool_from_int", default)]
  pub isfriend: bool,
  #[serde(deserialize_with = "bool_from_int", default)]
  pub isfamily: bool,
//  #[serde(default)]
//  pub date_faved: String,
  #[serde(deserialize_with = "date_from_string")]
  pub date_faved: DateTime<Local>,
}

// ---- GetContextBuilder -------------------------------------------------------------------------

/// Builder for flickr.favorites.getContext.
pub struct GetContextBuilder<'a> {
    flickr: &'a mut FlickrAPI,

    photo_id: String,
    user_id: String,
}

impl<'a> GetContextBuilder<'a> {
    pub fn new(flickr: &mut FlickrAPI) -> GetContextBuilder {
        GetContextBuilder {
            flickr: flickr,
            photo_id: String::new(),
            user_id: String::new(),
        }
    }

    implement_setters!(self
        ; photo_id: String, user_id: String 
        ;
        );


    implement_perform!(self, GetContextResult, "flickr.favorites.getContext"
        ; photo_id: String, user_id: String 
        ;
        );
}

// ---- GetContextResult --------------------------------------------------------------------------
#[derive(Deserialize, Debug)]
pub struct GetContextResult {
  #[serde(default)]
  pub stat: String,

  #[serde(default)]
  pub code: i32,

  #[serde(default)]
  pub message: String,

  #[serde(deserialize_with = "i32_from_content_block", default)]
  pub count: i32,

  #[serde(default)]
  pub prevphoto: Option<ContextPhoto>,

  #[serde(default)]
  pub nextphoto: Option<ContextPhoto>,
}

// ---- ContextPhoto ------------------------------------------------------------------------------
#[derive(Deserialize, Debug)]
pub struct ContextPhoto {
  pub id: String,
  pub owner: String,
  #[serde(default)]
  pub secret: String,
  #[serde(default)]
  pub server: String,
  #[serde(default)]
  pub farm: i32,
  #[serde(default)]
  pub title: String,
  #[serde(default)]
  pub url: String,
  #[serde(default)]
  pub thumb: String,
  #[serde(deserialize_with = "i32_from_string", default)]
  pub license: i32,
  #[serde(default)]
  pub media: String,
  #[serde(deserialize_with = "bool_from_int", default)]
  pub is_faved: bool,
}

// ---- AddBuilder --------------------------------------------------------------------------------

/// Builder for flickr.favorites.add.
pub struct AddBuilder<'a> {
    flickr: &'a mut FlickrAPI,

    photo_id: String,
}

impl<'a> AddBuilder<'a> {
    pub fn new(flickr: &mut FlickrAPI) -> AddBuilder {
        AddBuilder {
            flickr: flickr,
            photo_id: String::new(),
        }
    }

    implement_setters!(self
        ; photo_id: String
        ;
        );


    implement_perform!(self, AddResult, "flickr.favorites.add"
        ; photo_id: String
        ;
        );
}

// ---- AddResult ---------------------------------------------------------------------------------
#[derive(Deserialize, Debug)]
pub struct AddResult {
  #[serde(default)]
  pub stat: String,

  #[serde(default)]
  pub code: i32,

  #[serde(default)]
  pub message: String,
}

// ---- RemoveBuilder -----------------------------------------------------------------------------

/// Builder for flickr.favorites.remove.
pub struct RemoveBuilder<'a> {
    flickr: &'a mut FlickrAPI,

    photo_id: String,
}

impl<'a> RemoveBuilder<'a> {
    pub fn new(flickr: &mut FlickrAPI) -> RemoveBuilder {
        RemoveBuilder {
            flickr: flickr,
            photo_id: String::new(),
        }
    }

    implement_setters!(self
        ; photo_id: String
        ;
        );


    implement_perform!(self, RemoveResult, "flickr.favorites.remove"
        ; photo_id: String
        ;
        );
}

// ---- RemoveResult -----------------------------------------------------------------------------
#[derive(Deserialize, Debug)]
pub struct RemoveResult {
  #[serde(default)]
  pub stat: String,

  #[serde(default)]
  pub code: i32,

  #[serde(default)]
  pub message: String,
}

// ---- GetPublicListBuilder ----------------------------------------------------------------------

/// Builder for flickr.favorites.getPublicList.
pub struct GetPublicListBuilder<'a> {
    flickr: &'a mut FlickrAPI,

    user_id: Option<String>,
    min_fave_date: Option<u128>,
    max_fave_date: Option<u128>,
    extras: Option<String>,
    per_page: Option<i32>,
    page: Option<i32>,
}

impl<'a> GetPublicListBuilder<'a> {
    pub fn new(flickr: &mut FlickrAPI) -> GetPublicListBuilder {
        GetPublicListBuilder {
            flickr: flickr,
            user_id: Option::None,
            min_fave_date: Option::None,
            max_fave_date: Option::None,
            extras: Option::None,
            per_page: Option::None,
            page: Option::None,
        }
    }

    implement_setters!(self
        ; 
        ; user_id: String, min_fave_date: u128, max_fave_date: u128, extras: String, per_page: i32, page: i32
        );


    implement_perform!(self, GetListResult, "flickr.favorites.getPublicList" 
        ; 
        ; user_id: String, min_fave_date: u128, max_fave_date: u128, extras: String, per_page: i32, page: i32
        );
}

#[cfg(test)]
mod tests;