Change NodeInfo `links` to an array

NodeInfo spec[1] says that _.well-known/nodeinfo_ is a JSON Resource
Descriptor (JRD) document. That is specified in RFC 7033, where §4.4[2]
mandates that `links` is an array.

1. https://nodeinfo.diaspora.software/protocol.html
2. https://datatracker.ietf.org/doc/html/rfc7033#section-4.4
pull/1930/head
Alexander Batischev 2021-11-21 20:10:39 +03:00
parent ffc898a7b8
commit d53d229c49
No known key found for this signature in database
GPG Key ID: 356961A20C8BFD03
1 changed files with 3 additions and 3 deletions

View File

@ -17,13 +17,13 @@ async fn node_info_well_known(
context: web::Data<LemmyContext>, context: web::Data<LemmyContext>,
) -> Result<HttpResponse<Body>, LemmyError> { ) -> Result<HttpResponse<Body>, LemmyError> {
let node_info = NodeInfoWellKnown { let node_info = NodeInfoWellKnown {
links: NodeInfoWellKnownLinks { links: vec![NodeInfoWellKnownLinks {
rel: Url::parse("http://nodeinfo.diaspora.software/ns/schema/2.0")?, rel: Url::parse("http://nodeinfo.diaspora.software/ns/schema/2.0")?,
href: Url::parse(&format!( href: Url::parse(&format!(
"{}/nodeinfo/2.0.json", "{}/nodeinfo/2.0.json",
&context.settings().get_protocol_and_hostname(), &context.settings().get_protocol_and_hostname(),
))?, ))?,
}, }],
}; };
Ok(HttpResponse::Ok().json(node_info)) Ok(HttpResponse::Ok().json(node_info))
} }
@ -63,7 +63,7 @@ async fn node_info(context: web::Data<LemmyContext>) -> Result<HttpResponse, Err
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]
struct NodeInfoWellKnown { struct NodeInfoWellKnown {
pub links: NodeInfoWellKnownLinks, pub links: Vec<NodeInfoWellKnownLinks>,
} }
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]