use super::LogDrain;
use crate::framework::endpoint::{HerokuEndpoint, Method};
pub struct LogDrainUpdate<'a> {
pub addon_id: &'a str,
pub drain_id: &'a str,
pub params: LogDrainUpdateParams<'a>,
}
#[cfg(feature = "builder")]
impl<'a> LogDrainUpdate<'a> {
pub fn new(addon_id: &'a str, drain_id: &'a str, url: &'a str) -> LogDrainUpdate<'a> {
LogDrainUpdate {
addon_id,
drain_id,
params: LogDrainUpdateParams { url },
}
}
}
#[derive(Serialize, Clone, Debug)]
pub struct LogDrainUpdateParams<'a> {
pub url: &'a str,
}
impl<'a> HerokuEndpoint<LogDrain, (), LogDrainUpdateParams<'a>> for LogDrainUpdate<'a> {
fn method(&self) -> Method {
Method::Put
}
fn path(&self) -> String {
format!("addons/{}/log-drains/{}", self.addon_id, self.drain_id)
}
fn body(&self) -> Option<LogDrainUpdateParams<'a>> {
Some(self.params.clone())
}
}