asana/request/
trigger_rule.rs1use serde_json::json;
2use crate::model::*;
3use crate::FluentRequest;
4use serde::{Serialize, Deserialize};
5use httpclient::InMemoryResponseExt;
6use crate::AsanaClient;
7#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct TriggerRuleRequest {
12 pub data: RuleTriggerRequest,
13 pub rule_trigger_gid: String,
14}
15impl TriggerRuleRequest {}
16impl FluentRequest<'_, TriggerRuleRequest> {}
17impl<'a> ::std::future::IntoFuture for FluentRequest<'a, TriggerRuleRequest> {
18 type Output = httpclient::InMemoryResult<TriggerRuleResponse>;
19 type IntoFuture = ::futures::future::BoxFuture<'a, Self::Output>;
20 fn into_future(self) -> Self::IntoFuture {
21 Box::pin(async move {
22 let url = &format!(
23 "/rule_triggers/{rule_trigger_gid}/run", rule_trigger_gid = self.params
24 .rule_trigger_gid
25 );
26 let mut r = self.client.client.post(url);
27 r = r.json(json!({ "data" : self.params.data }));
28 r = self.client.authenticate(r);
29 let res = r.await?;
30 res.json().map_err(Into::into)
31 })
32 }
33}