diff options
author | Felix Ableitner <me@nutomic.com> | 2020-03-18 16:08:08 +0100 |
---|---|---|
committer | Felix Ableitner <me@nutomic.com> | 2020-03-18 16:08:08 +0100 |
commit | bd030470b1f488f40b739bbbcbd281c5234ec62c (patch) | |
tree | 8182b0c5114150876c436509b2e21f180ca79b49 /server/src/routes/nodeinfo.rs | |
parent | 5043a52b88e7269b5cb5c774e044c24f1014e917 (diff) |
Read remote nodeinfo before doing anything
Diffstat (limited to 'server/src/routes/nodeinfo.rs')
-rw-r--r-- | server/src/routes/nodeinfo.rs | 62 |
1 files changed, 34 insertions, 28 deletions
diff --git a/server/src/routes/nodeinfo.rs b/server/src/routes/nodeinfo.rs index 75568608..901db9d3 100644 --- a/server/src/routes/nodeinfo.rs +++ b/server/src/routes/nodeinfo.rs @@ -1,4 +1,5 @@ extern crate lazy_static; +use crate::apub::get_apub_protocol_string; use crate::db::site_view::SiteView; use crate::version; use crate::Settings; @@ -7,7 +8,8 @@ use actix_web::web; use actix_web::HttpResponse; use diesel::r2d2::{ConnectionManager, Pool}; use diesel::PgConnection; -use serde::Serialize; +use serde::{Deserialize, Serialize}; +use std::fmt::Debug; pub fn config(cfg: &mut web::ServiceConfig) { cfg @@ -19,7 +21,11 @@ async fn node_info_well_known() -> HttpResponse<Body> { let node_info = NodeInfoWellKnown { links: NodeInfoWellKnownLinks { rel: "http://nodeinfo.diaspora.software/ns/schema/2.0".to_string(), - href: format!("https://{}/nodeinfo/2.0.json", Settings::get().hostname), + href: format!( + "{}://{}/nodeinfo/2.0.json", + get_apub_protocol_string(), + Settings::get().hostname + ), }, }; HttpResponse::Ok().json(node_info) @@ -62,41 +68,41 @@ async fn node_info( Ok(res) } -#[derive(Serialize)] -struct NodeInfoWellKnown { - links: NodeInfoWellKnownLinks, +#[derive(Serialize, Deserialize, Debug)] +pub struct NodeInfoWellKnown { + pub links: NodeInfoWellKnownLinks, } -#[derive(Serialize)] -struct NodeInfoWellKnownLinks { - rel: String, - href: String, +#[derive(Serialize, Deserialize, Debug)] +pub struct NodeInfoWellKnownLinks { + pub rel: String, + pub href: String, } -#[derive(Serialize)] -struct NodeInfo { - version: String, - software: NodeInfoSoftware, - protocols: Vec<String>, - usage: NodeInfoUsage, +#[derive(Serialize, Deserialize, Debug)] +pub struct NodeInfo { + pub version: String, + pub software: NodeInfoSoftware, + pub protocols: Vec<String>, + pub usage: NodeInfoUsage, } -#[derive(Serialize)] -struct NodeInfoSoftware { - name: String, - version: String, +#[derive(Serialize, Deserialize, Debug)] +pub struct NodeInfoSoftware { + pub name: String, + pub version: String, } -#[derive(Serialize)] +#[derive(Serialize, Deserialize, Debug)] #[serde(rename_all = "camelCase")] -struct NodeInfoUsage { - users: NodeInfoUsers, - local_posts: i64, - local_comments: i64, - open_registrations: bool, +pub struct NodeInfoUsage { + pub users: NodeInfoUsers, + pub local_posts: i64, + pub local_comments: i64, + pub open_registrations: bool, } -#[derive(Serialize)] -struct NodeInfoUsers { - total: i64, +#[derive(Serialize, Deserialize, Debug)] +pub struct NodeInfoUsers { + pub total: i64, } |