use crate::framework::endpoint::{HerokuEndpoint, Method};
use std::collections::HashMap;
pub struct AppConfigVarDelete<'a> {
pub app_id: &'a str,
pub params: HashMap<String, Option<String>>,
}
#[cfg(feature = "builder")]
impl<'a> AppConfigVarDelete<'a> {
pub fn new(app_id: &'a str, params: HashMap<String, Option<String>>) -> AppConfigVarDelete {
AppConfigVarDelete { app_id, params }
}
pub fn create(app_id: &'a str, delete_key: String) -> AppConfigVarDelete<'a> {
let mut params = HashMap::new();
params.insert(delete_key, None);
AppConfigVarDelete { app_id, params }
}
}
impl<'a> HerokuEndpoint<HashMap<String, Option<String>>, (), HashMap<String, Option<String>>>
for AppConfigVarDelete<'a>
{
fn method(&self) -> Method {
Method::Patch
}
fn path(&self) -> String {
format!("apps/{}/config-vars", self.app_id)
}
fn body(&self) -> Option<HashMap<String, Option<String>>> {
Some(self.params.clone())
}
}
pub struct PipelineConfigVarDelete<'a> {
pub pipeline_id: &'a str,
pub stage_id: &'a str,
pub params: HashMap<String, Option<String>>,
}
#[cfg(feature = "builder")]
impl<'a> PipelineConfigVarDelete<'a> {
pub fn new(
pipeline_id: &'a str,
stage_id: &'a str,
params: HashMap<String, Option<String>>,
) -> PipelineConfigVarDelete<'a> {
PipelineConfigVarDelete {
pipeline_id,
stage_id,
params,
}
}
pub fn create(
pipeline_id: &'a str,
stage_id: &'a str,
delete_key: String,
) -> PipelineConfigVarDelete<'a> {
let mut params = HashMap::new();
params.insert(delete_key, None);
PipelineConfigVarDelete {
pipeline_id,
stage_id,
params,
}
}
}
impl<'a> HerokuEndpoint<HashMap<String, Option<String>>, (), HashMap<String, Option<String>>>
for PipelineConfigVarDelete<'a>
{
fn method(&self) -> Method {
Method::Patch
}
fn path(&self) -> String {
format!(
"pipelines/{}/stage/{}/config-vars",
self.pipeline_id, self.stage_id
)
}
fn body(&self) -> Option<HashMap<String, Option<String>>> {
Some(self.params.clone())
}
}