use super::Domain;
use crate::framework::endpoint::{HerokuEndpoint, Method};
pub struct DomainCreate<'a> {
pub app_id: &'a str,
pub params: DomainCreateParams<'a>,
}
#[cfg(feature = "builder")]
impl<'a> DomainCreate<'a> {
pub fn new(app_id: &'a str, hostname: &'a str) -> DomainCreate<'a> {
DomainCreate {
app_id,
params: DomainCreateParams { hostname },
}
}
}
#[derive(Serialize, Clone, Debug)]
pub struct DomainCreateParams<'a> {
pub hostname: &'a str,
}
impl<'a> HerokuEndpoint<Domain, (), DomainCreateParams<'a>> for DomainCreate<'a> {
fn method(&self) -> Method {
Method::Post
}
fn path(&self) -> String {
format!("apps/{}/domains", self.app_id)
}
fn body(&self) -> Option<DomainCreateParams<'a>> {
Some(self.params.clone())
}
}