use std::collections::HashMap;
use crate::framework::endpoint::{HerokuEndpoint, Method};
pub struct AppConfigVarDetails<'a> {
pub app_id: &'a str,
}
#[cfg(feature = "builder")]
impl<'a> AppConfigVarDetails<'a> {
pub fn new(app_id: &'a str) -> AppConfigVarDetails {
AppConfigVarDetails { app_id }
}
}
impl<'a> HerokuEndpoint<HashMap<String, Option<String>>> for AppConfigVarDetails<'a> {
fn method(&self) -> Method {
Method::Get
}
fn path(&self) -> String {
format!("apps/{}/config-vars", self.app_id)
}
}
pub struct ReleaseConfigVarDetails<'a> {
pub app_id: &'a str,
pub release_id: &'a str,
}
#[cfg(feature = "builder")]
impl<'a> ReleaseConfigVarDetails<'a> {
pub fn new(app_id: &'a str, release_id: &'a str) -> ReleaseConfigVarDetails<'a> {
ReleaseConfigVarDetails { app_id, release_id }
}
}
impl<'a> HerokuEndpoint<HashMap<String, Option<String>>> for ReleaseConfigVarDetails<'a> {
fn method(&self) -> Method {
Method::Get
}
fn path(&self) -> String {
format!(
"apps/{}/releases/{}/config-vars",
self.app_id, self.release_id
)
}
}
pub struct PipelineConfigVarDetails<'a> {
pub pipeline_id: &'a str,
pub stage_id: &'a str,
}
#[cfg(feature = "builder")]
impl<'a> PipelineConfigVarDetails<'a> {
pub fn new(pipeline_id: &'a str, stage_id: &'a str) -> PipelineConfigVarDetails<'a> {
PipelineConfigVarDetails {
pipeline_id,
stage_id,
}
}
}
impl<'a> HerokuEndpoint<HashMap<String, Option<String>>> for PipelineConfigVarDetails<'a> {
fn method(&self) -> Method {
Method::Get
}
fn path(&self) -> String {
format!(
"pipelines/{}/stage/{}/config-vars",
self.pipeline_id, self.stage_id
)
}
}