MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / post_event

Method post_event

chirpstack/src/integration/http.rs:51–89  ·  view source on GitHub ↗
(&self, event: &str, b: Vec<u8>)

Source from the content-addressed store, hash-verified

49 }
50
51 async fn post_event(&self, event: &str, b: Vec<u8>) -> Result<()> {
52 let mut headers = HeaderMap::new();
53
54 for (k, v) in &self.headers {
55 headers.insert(HeaderName::try_from(k)?, v.parse()?);
56 }
57
58 if self.json {
59 headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
60 } else {
61 headers.insert(CONTENT_TYPE, "application/octet-stream".parse().unwrap());
62 }
63
64 for url in &self.endpoints {
65 info!(event = %event, url = %url, "Posting event");
66 let res = get_client()
67 .post(url)
68 .body(b.clone())
69 .query(&[("event", event)])
70 .headers(headers.clone())
71 .send()
72 .await;
73
74 // We log the errors as warn as these endpoints are user-defined.
75 match res {
76 Ok(res) => match res.error_for_status() {
77 Ok(_) => {}
78 Err(e) => {
79 warn!(event = %event, url = %url, error = %e, "Posting event failed");
80 }
81 },
82 Err(e) => {
83 warn!(event = %event, url = %url, error = %e, "Posting event failed");
84 }
85 }
86 }
87
88 Ok(())
89 }
90}
91
92#[async_trait]

Callers 7

uplink_eventMethod · 0.45
join_eventMethod · 0.45
ack_eventMethod · 0.45
txack_eventMethod · 0.45
log_eventMethod · 0.45
status_eventMethod · 0.45
location_eventMethod · 0.45

Calls 4

insertMethod · 0.80
unwrapMethod · 0.80
postMethod · 0.80
get_clientFunction · 0.70

Tested by

no test coverage detected