Adding get_public_key_ext() to ActorType trait.

This commit is contained in:
Dessalines 2020-04-24 22:34:51 -04:00
parent df9135f410
commit b5a5b307a0
4 changed files with 23 additions and 16 deletions

View file

@ -38,13 +38,7 @@ impl ToApub for Community {
.set_outbox(self.get_outbox_url())? .set_outbox(self.get_outbox_url())?
.set_followers(self.get_followers_url())?; .set_followers(self.get_followers_url())?;
let public_key = PublicKey { Ok(group.extend(actor_props).extend(self.get_public_key_ext()))
id: format!("{}#main-key", self.actor_id),
owner: self.actor_id.to_owned(),
public_key_pem: self.public_key.to_owned().unwrap(),
};
Ok(group.extend(actor_props).extend(public_key.to_ext()))
} }
} }
@ -52,6 +46,10 @@ impl ActorType for Community {
fn actor_id(&self) -> String { fn actor_id(&self) -> String {
self.actor_id.to_owned() self.actor_id.to_owned()
} }
fn public_key(&self) -> String {
self.public_key.to_owned().unwrap()
}
} }
impl FromApub for CommunityForm { impl FromApub for CommunityForm {

View file

@ -60,8 +60,8 @@ fn handle_follow(
user_id: user.id, user_id: user.id,
}; };
// This will fail if they're already a follower // This will fail if they're already a follower, but ignore the error.
CommunityFollower::follow(&conn, &community_follower_form)?; CommunityFollower::follow(&conn, &community_follower_form).ok();
accept_follow(&follow, &conn)?; accept_follow(&follow, &conn)?;
Ok(HttpResponse::Ok().finish()) Ok(HttpResponse::Ok().finish())

View file

@ -141,6 +141,8 @@ pub trait FromApub {
pub trait ActorType { pub trait ActorType {
fn actor_id(&self) -> String; fn actor_id(&self) -> String;
fn public_key(&self) -> String;
fn get_inbox_url(&self) -> String { fn get_inbox_url(&self) -> String {
format!("{}/inbox", &self.actor_id()) format!("{}/inbox", &self.actor_id())
} }
@ -157,4 +159,13 @@ pub trait ActorType {
fn get_liked_url(&self) -> String { fn get_liked_url(&self) -> String {
format!("{}/liked", &self.actor_id()) format!("{}/liked", &self.actor_id())
} }
fn get_public_key_ext(&self) -> PublicKeyExtension {
PublicKey {
id: format!("{}#main-key", self.actor_id()),
owner: self.actor_id(),
public_key_pem: self.public_key(),
}
.to_ext()
}
} }

View file

@ -36,13 +36,7 @@ impl ToApub for User_ {
.set_following(self.get_following_url())? .set_following(self.get_following_url())?
.set_liked(self.get_liked_url())?; .set_liked(self.get_liked_url())?;
let public_key = PublicKey { Ok(person.extend(actor_props).extend(self.get_public_key_ext()))
id: format!("{}#main-key", self.actor_id),
owner: self.actor_id.to_owned(),
public_key_pem: self.public_key.to_owned().unwrap(),
};
Ok(person.extend(actor_props).extend(public_key.to_ext()))
} }
} }
@ -50,6 +44,10 @@ impl ActorType for User_ {
fn actor_id(&self) -> String { fn actor_id(&self) -> String {
self.actor_id.to_owned() self.actor_id.to_owned()
} }
fn public_key(&self) -> String {
self.public_key.to_owned().unwrap()
}
} }
impl FromApub for UserForm { impl FromApub for UserForm {