Always use JSON for Webfinger

This commit is contained in:
Bat
2018-04-24 12:38:43 +01:00
parent 0c9a1bfc3a
commit 270786ad3d
3 changed files with 15 additions and 49 deletions
+2 -30
View File
@@ -6,7 +6,7 @@ pub trait Webfinger {
fn webfinger_aliases(&self, conn: &PgConnection) -> Vec<String>;
fn webfinger_links(&self, conn: &PgConnection) -> Vec<Vec<(String, String)>>;
fn webfinger_json(&self, conn: &PgConnection) -> serde_json::Value {
fn webfinger(&self, conn: &PgConnection) -> String {
json!({
"subject": self.webfinger_subject(conn),
"aliases": self.webfinger_aliases(conn),
@@ -17,34 +17,6 @@ pub trait Webfinger {
}
serde_json::Value::Object(link_obj)
}).collect::<Vec<serde_json::Value>>()
})
}
fn webfinger_xml(&self, conn: &PgConnection) -> String {
format!(r#"
<?xml version="1.0"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
<Subject>{subject}</Subject>
{aliases}
{links}
</XRD>
"#,
subject = self.webfinger_subject(conn),
aliases = self.webfinger_aliases(conn).into_iter().map(|a| {
format!("<Alias>{a}</Alias>", a = a)
}).collect::<Vec<String>>().join("\n"),
links = self.webfinger_links(conn).into_iter().map(|l| {
format!("<Link {} />", l.into_iter().map(|prop| {
format!("{}=\"{}\"", prop.0, prop.1)
}).collect::<Vec<String>>().join(" "))
}).collect::<Vec<String>>().join("\n")
)
}
fn webfinger(&self, format: &'static str, conn: &PgConnection) -> String {
match format {
"json" => self.webfinger_json(conn).to_string(),
_ => self.webfinger_xml(conn)
}
}).to_string()
}
}