From f7e733c500be3a0620d743a795873b813e75c92d Mon Sep 17 00:00:00 2001 From: asonix Date: Wed, 18 Mar 2020 20:57:39 -0500 Subject: [PATCH] Oops on the Extension --- src/apub.rs | 20 +++++++++++++++++++- src/main.rs | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/apub.rs b/src/apub.rs index 4acdd53..1f976f9 100644 --- a/src/apub.rs +++ b/src/apub.rs @@ -15,7 +15,11 @@ pub struct PublicKey { pub public_key_pem: String, } -impl Extension for PublicKey where T: Actor {} +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PublicKeyExtension { + pub public_key: PublicKey, +} #[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize, PropRefs)] #[serde(rename_all = "camelCase")] @@ -86,6 +90,20 @@ pub struct Endpoints { shared_inbox: Option, } +impl PublicKey { + pub fn to_ext(self) -> PublicKeyExtension { + self.into() + } +} + +impl From for PublicKeyExtension { + fn from(public_key: PublicKey) -> Self { + PublicKeyExtension { public_key } + } +} + +impl Extension for PublicKeyExtension where T: Actor {} + impl ValidObjects { pub fn id(&self) -> &XsdAnyUri { match self { diff --git a/src/main.rs b/src/main.rs index 975d262..c7c4917 100644 --- a/src/main.rs +++ b/src/main.rs @@ -81,7 +81,7 @@ async fn actor_route(state: web::Data) -> Result public_key_pem: state.settings.public_key.to_pem_pkcs8()?, }; - Ok(ok(application.extend(public_key))) + Ok(ok(application.extend(public_key.to_ext()))) } #[actix_rt::main]