|
|
|
@ -19,6 +19,9 @@ use activitystreams::{
|
|
|
|
|
object::{properties::ObjectProperties, Note, Page, Tombstone},
|
|
|
|
|
public, BaseBox,
|
|
|
|
|
};
|
|
|
|
|
use activitystreams::object::kind::{NoteType, PageType};
|
|
|
|
|
use crate::api::community::CommunityResponse;
|
|
|
|
|
use crate::websocket::server::SendCommunityRoomMessage;
|
|
|
|
|
use actix_web::body::Body;
|
|
|
|
|
use actix_web::web::Path;
|
|
|
|
|
use actix_web::{web, HttpRequest, HttpResponse, Result};
|
|
|
|
@ -64,6 +67,7 @@ use chrono::NaiveDateTime;
|
|
|
|
|
use fetcher::{get_or_fetch_and_upsert_remote_community, get_or_fetch_and_upsert_remote_user};
|
|
|
|
|
use signatures::verify;
|
|
|
|
|
use signatures::{sign, PublicKey, PublicKeyExtension};
|
|
|
|
|
use activitystreams::primitives::XsdString;
|
|
|
|
|
|
|
|
|
|
type GroupExt = Ext<Ext<Group, ApActorProperties>, PublicKeyExtension>;
|
|
|
|
|
type PersonExt = Ext<Ext<Person, ApActorProperties>, PublicKeyExtension>;
|
|
|
|
@ -87,6 +91,7 @@ where
|
|
|
|
|
.content_type(APUB_JSON_CONTENT_TYPE)
|
|
|
|
|
.json(data)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn create_apub_tombstone_response<T>(data: &T) -> HttpResponse<Body>
|
|
|
|
|
where
|
|
|
|
|
T: Serialize,
|
|
|
|
@ -158,6 +163,7 @@ fn create_tombstone(
|
|
|
|
|
object_id: &str,
|
|
|
|
|
published: NaiveDateTime,
|
|
|
|
|
updated: Option<NaiveDateTime>,
|
|
|
|
|
former_type: String,
|
|
|
|
|
) -> Result<Tombstone, Error> {
|
|
|
|
|
if deleted {
|
|
|
|
|
let mut tombstone = Tombstone::default();
|
|
|
|
@ -165,12 +171,13 @@ fn create_tombstone(
|
|
|
|
|
tombstone
|
|
|
|
|
.object_props
|
|
|
|
|
.set_id(object_id)?
|
|
|
|
|
.set_published(convert_datetime(published))?;
|
|
|
|
|
.set_published(convert_datetime(published));
|
|
|
|
|
if let Some(updated) = updated {
|
|
|
|
|
tombstone
|
|
|
|
|
.object_props
|
|
|
|
|
.set_updated(convert_datetime(updated))?;
|
|
|
|
|
}
|
|
|
|
|
tombstone.tombstone_props.set_former_type_object_box(XsdString::from_string(former_type))?;
|
|
|
|
|
Ok(tombstone)
|
|
|
|
|
} else {
|
|
|
|
|
Err(format_err!(
|
|
|
|
|