use crate::{
extensions::context::lemmy_context,
- fetcher::person::get_or_fetch_and_upsert_person,
+ fetcher::object_id::ObjectId,
objects::{create_tombstone, FromApub, Source, ToApub},
};
use activitystreams::{
values::{MediaTypeHtml, MediaTypeMarkdown},
verify_domains_match,
};
-use lemmy_db_queries::{ApubObject, Crud, DbPool};
+use lemmy_db_queries::{source::private_message::PrivateMessage_, Crud, DbPool};
use lemmy_db_schema::source::{
person::Person,
private_message::{PrivateMessage, PrivateMessageForm},
context: OneOrMany<AnyBase>,
r#type: NoteType,
id: Url,
- pub(crate) attributed_to: Url,
- to: Url,
+ pub(crate) attributed_to: ObjectId<Person>,
+ to: ObjectId<Person>,
content: String,
media_type: MediaTypeHtml,
source: Source,
context: &LemmyContext,
request_counter: &mut i32,
) -> Result<(), LemmyError> {
- verify_domains_match(&self.attributed_to, &self.id)?;
- let person =
- get_or_fetch_and_upsert_person(&self.attributed_to, context, request_counter).await?;
+ verify_domains_match(self.attributed_to.inner(), &self.id)?;
+ let person = self
+ .attributed_to
+ .dereference(context, request_counter)
+ .await?;
if person.banned {
return Err(anyhow!("Person is banned from site").into());
}
context: lemmy_context(),
r#type: NoteType::Note,
id: self.ap_id.clone().into(),
- attributed_to: creator.actor_id.into_inner(),
- to: recipient.actor_id.into(),
+ attributed_to: ObjectId::new(creator.actor_id),
+ to: ObjectId::new(recipient.actor_id),
content: self.content.clone(),
media_type: MediaTypeHtml::Html,
source: Source {
request_counter: &mut i32,
) -> Result<PrivateMessage, LemmyError> {
let ap_id = Some(note.id(expected_domain)?.clone().into());
- let creator =
- get_or_fetch_and_upsert_person(¬e.attributed_to, context, request_counter).await?;
- let recipient = get_or_fetch_and_upsert_person(¬e.to, context, request_counter).await?;
+ let creator = note
+ .attributed_to
+ .dereference(context, request_counter)
+ .await?;
+ let recipient = note.to.dereference(context, request_counter).await?;
let form = PrivateMessageForm {
creator_id: creator.id,