watchbird_api 0.2.2-rc.0

A self-hosted and API-driven uptime monitor
Documentation
mod alert;
mod probe;
mod watch;

pub use alert::*;
pub use probe::*;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
pub use watch::*;

/// Filter returned objects by these parameters
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, JsonSchema, Default)]
pub struct ListFilter {
    /// Only return resources with this owner_ref
    #[serde(default)]
    pub owner_ref: Option<String>,
    /// Search a resource by name
    pub name: Option<String>,
}
impl ListFilter {
    pub fn to_query(&self) -> Vec<(&'static str, &str)> {
        let mut query = vec![];
        if let Some(owner_ref) = self.owner_ref.as_deref() {
            query.push(("owner_ref", owner_ref));
        }
        if let Some(name) = self.name.as_deref() {
            query.push(("name", name));
        }
        query
    }
}