asana/request/
trigger_rule.rs

1use serde_json::json;
2use crate::model::*;
3use crate::FluentRequest;
4use serde::{Serialize, Deserialize};
5use httpclient::InMemoryResponseExt;
6use crate::AsanaClient;
7/**You should use this struct via [`AsanaClient::trigger_rule`].
8
9On request success, this will return a [`TriggerRuleResponse`].*/
10#[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}