extern crate pushover_rs;
mod common;
use common::*;
use std::time::{SystemTime, UNIX_EPOCH, Duration};
use pushover_rs::{AttachmentMessageBuilder, send_pushover_request_with_attachment, PushoverResponse, PushoverSound};
pub fn send_pushover_message_with_attachment() -> Result<PushoverResponse, Box<dyn std::error::Error>> {
let credentials: ExampleCredentials = read_credentials();
let duration_since_epoch: Duration = SystemTime::now().duration_since(UNIX_EPOCH).unwrap();
let now: u64 = duration_since_epoch.as_secs();
let message = AttachmentMessageBuilder::new(&credentials.user, &credentials.token, "Some message")
.set_title("Example with attachment")
.set_attachment("examples/data/attachment.jpg".into())
.set_sound(PushoverSound::TUGBOAT)
.set_timestamp(now)
.build()
.unwrap();
send_pushover_request_with_attachment(message)
}
pub fn main() {
let results: Result<PushoverResponse, Box<dyn std::error::Error>> =
send_pushover_message_with_attachment();
if results.is_ok() {
let pushover_response: PushoverResponse = results.ok().unwrap();
if pushover_response.status != 1 {
eprintln!("The request was incorrect.");
if pushover_response.errors.is_some() {
let errors = pushover_response.errors
.unwrap()
.into_iter()
.map(|x| format!("{} ", x))
.collect::<String>();
eprintln!("The request was incorrect: {}", errors);
} else {
eprintln!("The request was incorrect.", )
}
} else {
println!("Ok, your push notification should arrive soon.");
}
}
}