iftttwebhookrust

crate.io

binding to the ifttt webhook api. there is a async interface can be activate in feature non-blocking. and a time delay trigger function for delay the trigger in feature delay.

the blocking interface use ureq, and the non-blocking interface use reqwest internally.

Installation

Usage

blocking api

code ```rust extern crate iftttwebhookrust extern crate dotenv use iftttwebhookrust::*

dotenv::dotenv().unwrap();
let event_name = dotenv::var("EVENT").unwrap();
let api_key = dotenv::var("KEY").unwrap();
let blocking_client = BlockingIftttWebHookClient::new(&event_name, &api_key);
let res = client.trigger(None);
assert!(res.is_ok())

```

non-blocking api

Cargo.toml toml ifttt_webhook_rust={version=*,default-features= false,features=["non-blocking"]} code ```rust extern crate iftttwebhookrust extern crate dotenv use iftttwebhookrust::*

dotenv::dotenv().unwrap();
let event_name = dotenv::var("EVENT").unwrap();
let api_key = dotenv::var("KEY").unwrap();
let data = WebHookData::new(Some("foo"), Some("bar"), None);
let client = NonBlockingIftttWebHookClient::new(&event_name, &api_key);
let res = client.trigger(data).await;
assert!(res.is_ok())

```

non-blocking api with time delay

Cargo.toml toml ifttt_webhook_rust={version=*,default-features= false,features=["delay"]} code ```rust extern crate iftttwebhookrust extern crate dotenv use iftttwebhookrust::*

dotenv::dotenv().unwrap();
let event_name = dotenv::var("EVENT").unwrap();
let api_key = dotenv::var("KEY").unwrap();
let client = NonBlockingIftttWebHookClient::new(&event_name, api_key);
let res_handler: DelayResultHandler =
    client.trigger_with_delay(None,std::time::Duration::from_secs(5));
///do something else
let res = res_handler.await;
assert!(res.is_ok())

```