squarecloud 0.1.1

Async Rust client for the SquareCloud API
Documentation
use super::Endpoint;
use reqwest::Method;

#[cfg(feature = "test-utils")]
inventory::submit! { crate::EndpointSpec { method: "get",  path: "/apps/{app_id}/network/dns" } }
#[cfg(feature = "test-utils")]
inventory::submit! { crate::EndpointSpec { method: "get",  path: "/apps/{app_id}/network/analytics" } }
#[cfg(feature = "test-utils")]
inventory::submit! { crate::EndpointSpec { method: "post", path: "/apps/{app_id}/network/custom" } }
#[cfg(feature = "test-utils")]
inventory::submit! { crate::EndpointSpec { method: "post", path: "/apps/{app_id}/network/purge_cache" } }
#[cfg(feature = "test-utils")]
inventory::submit! { crate::EndpointSpec { method: "get",  path: "/apps/{app_id}/network/logs" } }
#[cfg(feature = "test-utils")]
inventory::submit! { crate::EndpointSpec { method: "get",  path: "/apps/{app_id}/network/errors" } }
#[cfg(feature = "test-utils")]
inventory::submit! { crate::EndpointSpec { method: "get",  path: "/apps/{app_id}/network/performance" } }

impl Endpoint {
    pub(crate) fn get_app_dns_record(app_id: &str) -> Endpoint {
        Self::builder("/apps/{app_id}/network/dns", Method::GET)
            .param("app_id", app_id)
            .build()
    }

    pub(crate) fn get_app_analytics(
        app_id: &str,
        start: &str,
        end: &str,
    ) -> Endpoint {
        Self::builder("/apps/{app_id}/network/analytics", Method::GET)
            .param("app_id", app_id)
            .query("start", start)
            .query("end", end)
            .build()
    }

    pub(crate) fn set_app_custom_domain(app_id: &str) -> Endpoint {
        Self::builder("/apps/{app_id}/network/custom", Method::POST)
            .param("app_id", app_id)
            .build()
    }

    pub(crate) fn purge_edge_cache(app_id: &str) -> Endpoint {
        Self::builder("/apps/{app_id}/network/purge_cache", Method::POST)
            .param("app_id", app_id)
            .build()
    }

    pub(crate) fn network_logs(
        app_id: &str,
        start: &str,
        end: &str,
    ) -> Endpoint {
        Self::builder("/apps/{app_id}/network/logs", Method::GET)
            .param("app_id", app_id)
            .query("start", start)
            .query("end", end)
            .build()
    }

    pub(crate) fn network_errors(
        app_id: &str,
        include_4xx: bool,
        start: &str,
        end: &str,
    ) -> Endpoint {
        let mut b =
            Self::builder("/apps/{app_id}/network/errors", Method::GET)
                .param("app_id", app_id)
                .query("start", start)
                .query("end", end);
        if include_4xx {
            b = b.query("include_4xx", "true");
        }
        b.build()
    }

    pub(crate) fn network_performance(
        app_id: &str,
        start: &str,
        end: &str,
    ) -> Endpoint {
        Self::builder("/apps/{app_id}/network/performance", Method::GET)
            .param("app_id", app_id)
            .query("start", start)
            .query("end", end)
            .build()
    }
}