rnotifylib/util/http_util/
mod.rs1use 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}