use std::sync::Arc;
use crate::error::Result;
use crate::http::HttpClient;
use crate::types::{
ZapierSubscribeRequest, ZapierSubscribeResponse, ZapierTriggerSample, ZapierUnsubscribeResponse,
};
#[derive(Clone)]
pub struct IntegrationsResource {
pub(crate) http: Arc<HttpClient>,
}
impl IntegrationsResource {
pub async fn zapier_subscribe(
&self,
request: ZapierSubscribeRequest,
) -> Result<ZapierSubscribeResponse> {
self.http
.post("/integrations/zapier/subscribe", &request, None)
.await
}
pub async fn zapier_unsubscribe(
&self,
subscription_id: &str,
) -> Result<ZapierUnsubscribeResponse> {
self.http
.delete(
&format!("/integrations/zapier/unsubscribe/{subscription_id}"),
None,
)
.await
}
pub async fn zapier_trigger_sample(&self, event: &str) -> Result<ZapierTriggerSample> {
self.http
.get(
&format!("/integrations/zapier/triggers/{event}"),
None,
)
.await
}
}