type GroupExt = Ext<Group, ApActorProperties>;
+static APUB_JSON_CONTENT_TYPE: &str = "application/activity+json";
+
fn create_apub_response<T>(json: &T) -> HttpResponse<Body>
where
T: serde::ser::Serialize,
{
HttpResponse::Ok()
- .content_type("application/activity+json")
+ .content_type(APUB_JSON_CONTENT_TYPE)
.json(json)
}
use isahc::prelude::*;
use log::warn;
use serde::Deserialize;
+use std::time::Duration;
fn fetch_node_info(domain: &str) -> Result<NodeInfo, Error> {
let well_known_uri = format!(
}
// TODO: should cache responses here when we are in production
// TODO: this function should return a future
- let text = isahc::get(uri)?.text()?;
+ let timeout = Duration::from_secs(60);
+ let text = Request::get(uri)
+ .header("Accept", APUB_JSON_CONTENT_TYPE)
+ .connect_timeout(timeout)
+ .timeout(timeout)
+ .body(())?
+ .send()?
+ .text()?;
let res: Response = serde_json::from_str(&text)?;
Ok(res)
}