1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
//! # Pushover API Wrapper
//!
//! https://pushover.net/api
//!
//! ## Usage
//! Add the following to `Cargo.toml`:
//!
//! ```rust,ignore
//! [dependencies]
//! pushover = "0.4.0"
//! ```
//!
//! Synchronous example:
//!
//! ```rust,no_run
//!
//! use pushover::API;
//! use pushover::requests::message::SendMessage;
//!
//! fn send_message() {
//! let api = API::new();
//!
//! let msg = SendMessage::new("token", "user_key", "hello");
//!
//! let response = api.send(&msg);
//! println!("{:?}", response.expect("Error sending message"));
//! }
//!
//! ```
//!
//! Asynchronous example:
//!
//! ```rust,no_run
//!
//! use pushover::API;
//! use pushover::requests::message::SendMessage;
//!
//! async fn send_message() {
//! let api = API::new();
//!
//! let msg = SendMessage::new("token", "user_key", "hello");
//! let response = api.send_async(&msg).await;
//!
//! println!("{:?}", response.expect("Error sending message"));
//! }
//! ```
mod client;
mod deserializers;
mod error;
pub mod requests;
mod types;
pub use self::client::API;
pub use self::error::{Error, ErrorKind};
pub use self::types::{OperatingSystem, Priority, Sound, User, UserType};
#[cfg(test)]
mod test {
use crate::client::{API_URL, API_VERSION};
use crate::requests::Request;
use url::Url;
pub fn assert_req_url<R>(req: &R, path: &str, iter: Option<&[(&str, &str)]>)
where
R: Request,
{
let mut url = Url::parse(&format!("{}/{}", API_URL, API_VERSION)).unwrap();
req.build_url(&mut url);
let expected_url = match iter {
Some(x) => {
Url::parse_with_params(&format!("{}/{}/{}", API_URL, API_VERSION, path), x).unwrap()
}
None => Url::parse(&format!("{}/{}/{}", API_URL, API_VERSION, path)).unwrap(),
};
assert_eq!(expected_url, url);
}
}