use async_trait::async_trait;
use std::sync::Arc;
use std::borrow::Borrow;
#[allow(unused_imports)]
use std::option::Option;
use reqwest;
use super::{Error, configuration};
pub struct RuleGroupsApiClient {
configuration: Arc<configuration::Configuration>,
}
impl RuleGroupsApiClient {
pub fn new(configuration: Arc<configuration::Configuration>) -> RuleGroupsApiClient {
RuleGroupsApiClient {
configuration,
}
}
}
#[async_trait]
pub trait RuleGroupsApi {
async fn delete_rule_group(&self, id: i32) -> Result<(), Error>;
async fn fire_rule_group(&self, id: i32, start: Option<String>, end: Option<String>, accounts: Option<&str>) -> Result<(), Error>;
async fn get_rule_group(&self, id: i32) -> Result<crate::models::RuleGroupSingle, Error>;
async fn list_rule_by_group(&self, id: i32, page: Option<i32>) -> Result<crate::models::RuleArray, Error>;
async fn list_rule_group(&self, page: Option<i32>) -> Result<crate::models::RuleGroupArray, Error>;
async fn store_rule_group(&self, rule_group: crate::models::RuleGroup) -> Result<crate::models::RuleGroupSingle, Error>;
async fn test_rule_group(&self, id: i32, page: Option<i32>, start: Option<String>, end: Option<String>, search_limit: Option<i32>, triggered_limit: Option<i32>, accounts: Option<&str>) -> Result<crate::models::TransactionArray, Error>;
async fn update_rule_group(&self, id: i32, rule_group: crate::models::RuleGroup) -> Result<crate::models::RuleGroupSingle, Error>;
}
#[async_trait]
impl RuleGroupsApi for RuleGroupsApiClient {
async fn delete_rule_group(&self, id: i32) -> Result<(), Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups/{id}", configuration.base_path, id=id);
let mut req_builder = client.request(::reqwest::Method::DELETE, uri_str.as_str());
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
let req = req_builder.build()?;
client.execute(req).await?.error_for_status()?;
Ok(())
}
async fn fire_rule_group(&self, id: i32, start: Option<String>, end: Option<String>, accounts: Option<&str>) -> Result<(), Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups/{id}/trigger", configuration.base_path, id=id);
let mut req_builder = client.request(::reqwest::Method::POST, uri_str.as_str());
if let Some(ref s) = start {
req_builder = req_builder.query(&[("start", &s.to_string())]);
}
if let Some(ref s) = end {
req_builder = req_builder.query(&[("end", &s.to_string())]);
}
if let Some(ref s) = accounts {
req_builder = req_builder.query(&[("accounts", &s.to_string())]);
}
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
let req = req_builder.build()?;
client.execute(req).await?.error_for_status()?;
Ok(())
}
async fn get_rule_group(&self, id: i32) -> Result<crate::models::RuleGroupSingle, Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups/{id}", configuration.base_path, id=id);
let mut req_builder = client.request(::reqwest::Method::GET, uri_str.as_str());
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
let req = req_builder.build()?;
Ok(client.execute(req).await?.error_for_status()?.json().await?)
}
async fn list_rule_by_group(&self, id: i32, page: Option<i32>) -> Result<crate::models::RuleArray, Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups/{id}/rules", configuration.base_path, id=id);
let mut req_builder = client.request(::reqwest::Method::GET, uri_str.as_str());
if let Some(ref s) = page {
req_builder = req_builder.query(&[("page", &s.to_string())]);
}
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
let req = req_builder.build()?;
Ok(client.execute(req).await?.error_for_status()?.json().await?)
}
async fn list_rule_group(&self, page: Option<i32>) -> Result<crate::models::RuleGroupArray, Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups", configuration.base_path);
let mut req_builder = client.request(::reqwest::Method::GET, uri_str.as_str());
if let Some(ref s) = page {
req_builder = req_builder.query(&[("page", &s.to_string())]);
}
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
let req = req_builder.build()?;
Ok(client.execute(req).await?.error_for_status()?.json().await?)
}
async fn store_rule_group(&self, rule_group: crate::models::RuleGroup) -> Result<crate::models::RuleGroupSingle, Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups", configuration.base_path);
let mut req_builder = client.request(::reqwest::Method::POST, uri_str.as_str());
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
req_builder = req_builder.json(&rule_group);
let req = req_builder.build()?;
Ok(client.execute(req).await?.error_for_status()?.json().await?)
}
async fn test_rule_group(&self, id: i32, page: Option<i32>, start: Option<String>, end: Option<String>, search_limit: Option<i32>, triggered_limit: Option<i32>, accounts: Option<&str>) -> Result<crate::models::TransactionArray, Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups/{id}/test", configuration.base_path, id=id);
let mut req_builder = client.request(::reqwest::Method::GET, uri_str.as_str());
if let Some(ref s) = page {
req_builder = req_builder.query(&[("page", &s.to_string())]);
}
if let Some(ref s) = start {
req_builder = req_builder.query(&[("start", &s.to_string())]);
}
if let Some(ref s) = end {
req_builder = req_builder.query(&[("end", &s.to_string())]);
}
if let Some(ref s) = search_limit {
req_builder = req_builder.query(&[("search_limit", &s.to_string())]);
}
if let Some(ref s) = triggered_limit {
req_builder = req_builder.query(&[("triggered_limit", &s.to_string())]);
}
if let Some(ref s) = accounts {
req_builder = req_builder.query(&[("accounts", &s.to_string())]);
}
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
let req = req_builder.build()?;
Ok(client.execute(req).await?.error_for_status()?.json().await?)
}
async fn update_rule_group(&self, id: i32, rule_group: crate::models::RuleGroup) -> Result<crate::models::RuleGroupSingle, Error> {
let configuration: &configuration::Configuration = self.configuration.borrow();
let client = &configuration.client;
let uri_str = format!("{}/api/v1/rule_groups/{id}", configuration.base_path, id=id);
let mut req_builder = client.request(::reqwest::Method::PUT, uri_str.as_str());
if let Some(ref user_agent) = configuration.user_agent {
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
}
if let Some(ref token) = configuration.oauth_access_token {
req_builder = req_builder.bearer_auth(token.to_owned());
};
req_builder = req_builder.json(&rule_group);
let req = req_builder.build()?;
Ok(client.execute(req).await?.error_for_status()?.json().await?)
}
}