gecko 0.1.6

coin gecko api impl
Documentation
//! # `/status_updates`
//!
//! - [/status_updates](StatusUpdates)
//!
use crate::Route;

pub struct StatusUpdates {
    endpoint: String,
    pub category: String,
    pub project_type: String,
    pub per_page: i32,
    pub page: i32,
}

impl StatusUpdates {
    pub fn required() -> StatusUpdates {
        StatusUpdates::default()
    }
}

impl Default for StatusUpdates {
    fn default() -> StatusUpdates {
        StatusUpdates {
            endpoint: String::from("/status_updates"),
            category: String::from(""),
            project_type: String::from(""),
            per_page: 100,
            page: 1,
        }
    }
}
impl Route for StatusUpdates {
    fn api_endpoint(&self) -> String {
        format!("{}", self.endpoint)
    }
    fn query_string(&self) -> String {
        let default: StatusUpdates = Default::default();
        let category = self.format_query(
            "category".to_string(),
            &(self.category),
            &(default.category),
        );
        let project_type = self.format_query(
            "project_type".to_string(),
            &(self.project_type),
            &(default.category),
        );
        let per_page = self.format_query("per_page".to_string(), self.per_page, default.per_page);
        let page = self.format_query("page".to_string(), self.page, default.page);
        let optional = vec![category, project_type, per_page, page];
        self.collect_query_params(optional)
    }
}