rnotifylib/util/http_util/
mod.rs

1use std::error::Error;
2use serde::Serialize;
3use error::MessageSendError;
4
5pub mod error;
6
7pub fn post_as_json_to<T: Serialize>(url: &str, payload: &T) -> Result<(), Box<dyn Error>> {
8    let response = minreq::post(url)
9        .with_json(payload)?
10        .with_header("Accept", "application/json")
11        .send()?;
12    let code = response.status_code;
13    if code != 200 && code != 204 {
14        let response = response.as_str()?;
15        return Err(Box::new(MessageSendError::new(format!("Got response code {}: Response body: {}", code, response))));
16    }
17    Ok(())
18}