#![allow(unused_imports)]
#![cfg_attr(rustfmt, rustfmt_skip)]
use crate::{Client, ClientBuilder, Credentials, Retry};
use anyhow::Error;
use serde_json::Value;
use std::time::Duration;
use crate::util::urlencode;
pub struct Notify (Client);
#[allow(non_snake_case)]
impl Notify {
pub fn new<CB: Into<ClientBuilder>>(client_builder: CB) -> Result<Self, Error> {
Ok(Self(client_builder
.into()
.path_prefix("api/notify/v1/")
.build()?))
}
pub async fn ping(&self) -> Result<(), Error> {
let method = "GET";
let (path, query) = Self::ping_details();
let body = None;
let resp = self.0.request(method, path, query, body).await?;
resp.bytes().await?;
Ok(())
}
pub fn ping_url(&self) -> Result<String, Error> {
let (path, query) = Self::ping_details();
self.0.make_url(path, query)
}
pub fn ping_signed_url(&self, ttl: Duration) -> Result<String, Error> {
let (path, query) = Self::ping_details();
self.0.make_signed_url(path, query, ttl)
}
fn ping_details<'a>() -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "ping";
let query = None;
(path, query)
}
pub async fn email(&self, payload: &Value) -> Result<(), Error> {
let method = "POST";
let (path, query) = Self::email_details();
let body = Some(payload);
let resp = self.0.request(method, path, query, body).await?;
resp.bytes().await?;
Ok(())
}
fn email_details<'a>() -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "email";
let query = None;
(path, query)
}
pub async fn pulse(&self, payload: &Value) -> Result<(), Error> {
let method = "POST";
let (path, query) = Self::pulse_details();
let body = Some(payload);
let resp = self.0.request(method, path, query, body).await?;
resp.bytes().await?;
Ok(())
}
fn pulse_details<'a>() -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "pulse";
let query = None;
(path, query)
}
pub async fn matrix(&self, payload: &Value) -> Result<(), Error> {
let method = "POST";
let (path, query) = Self::matrix_details();
let body = Some(payload);
let resp = self.0.request(method, path, query, body).await?;
resp.bytes().await?;
Ok(())
}
fn matrix_details<'a>() -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "matrix";
let query = None;
(path, query)
}
pub async fn slack(&self, payload: &Value) -> Result<(), Error> {
let method = "POST";
let (path, query) = Self::slack_details();
let body = Some(payload);
let resp = self.0.request(method, path, query, body).await?;
resp.bytes().await?;
Ok(())
}
fn slack_details<'a>() -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "slack";
let query = None;
(path, query)
}
pub async fn addDenylistAddress(&self, payload: &Value) -> Result<(), Error> {
let method = "POST";
let (path, query) = Self::addDenylistAddress_details();
let body = Some(payload);
let resp = self.0.request(method, path, query, body).await?;
resp.bytes().await?;
Ok(())
}
fn addDenylistAddress_details<'a>() -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "denylist/add";
let query = None;
(path, query)
}
pub async fn deleteDenylistAddress(&self, payload: &Value) -> Result<(), Error> {
let method = "DELETE";
let (path, query) = Self::deleteDenylistAddress_details();
let body = Some(payload);
let resp = self.0.request(method, path, query, body).await?;
resp.bytes().await?;
Ok(())
}
fn deleteDenylistAddress_details<'a>() -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "denylist/delete";
let query = None;
(path, query)
}
pub async fn listDenylist(&self, continuationToken: Option<&str>, limit: Option<&str>) -> Result<Value, Error> {
let method = "GET";
let (path, query) = Self::listDenylist_details(continuationToken, limit);
let body = None;
let resp = self.0.request(method, path, query, body).await?;
Ok(resp.json().await?)
}
pub fn listDenylist_url(&self, continuationToken: Option<&str>, limit: Option<&str>) -> Result<String, Error> {
let (path, query) = Self::listDenylist_details(continuationToken, limit);
self.0.make_url(path, query)
}
pub fn listDenylist_signed_url(&self, continuationToken: Option<&str>, limit: Option<&str>, ttl: Duration) -> Result<String, Error> {
let (path, query) = Self::listDenylist_details(continuationToken, limit);
self.0.make_signed_url(path, query, ttl)
}
fn listDenylist_details<'a>(continuationToken: Option<&'a str>, limit: Option<&'a str>) -> (&'static str, Option<Vec<(&'static str, &'a str)>>) {
let path = "denylist/list";
let mut query = None;
if let Some(q) = continuationToken {
query.get_or_insert_with(Vec::new).push(("continuationToken", q));
}
if let Some(q) = limit {
query.get_or_insert_with(Vec::new).push(("limit", q));
}
(path, query)
}
}