use crate::{
check_apub_id_valid_with_strictness,
- fetch_local_site_data,
+ local_site_data_cached,
objects::{instance::fetch_instance_actor_for_object, read_from_string_or_source_opt},
protocol::{
objects::{
context: &Data<Self::DataType>,
) -> Result<Option<Self>, LemmyError> {
Ok(
- DbPerson::read_from_apub_id(context.pool(), &object_id.into())
+ DbPerson::read_from_apub_id(&mut context.pool(), &object_id.into())
.await?
.map(Into::into),
)
#[tracing::instrument(skip_all)]
async fn delete(self, context: &Data<Self::DataType>) -> Result<(), LemmyError> {
let form = PersonUpdateForm::builder().deleted(Some(true)).build();
- DbPerson::update(context.pool(), self.id, &form).await?;
+ DbPerson::update(&mut context.pool(), self.id, &form).await?;
Ok(())
}
expected_domain: &Url,
context: &Data<Self::DataType>,
) -> Result<(), LemmyError> {
- let local_site_data = fetch_local_site_data(context.pool()).await?;
+ let local_site_data = local_site_data_cached(&mut context.pool()).await?;
let slur_regex = &local_site_opt_to_slur_regex(&local_site_data.local_site);
-
check_slurs(&person.preferred_username, slur_regex)?;
check_slurs_opt(&person.name, slur_regex)?;
verify_domains_match(person.id.inner(), expected_domain)?;
- check_apub_id_valid_with_strictness(
- person.id.inner(),
- false,
- &local_site_data,
- context.settings(),
- )?;
+ check_apub_id_valid_with_strictness(person.id.inner(), false, context).await?;
let bio = read_from_string_or_source_opt(&person.summary, &None, &person.source);
check_slurs_opt(&bio, slur_regex)?;
matrix_user_id: person.matrix_user_id,
instance_id,
};
- let person = DbPerson::upsert(context.pool(), &person_form).await?;
+ let person = DbPerson::upsert(&mut context.pool(), &person_form).await?;
Ok(person.into())
}
#[cfg(test)]
pub(crate) mod tests {
+ #![allow(clippy::unwrap_used)]
+ #![allow(clippy::indexing_slicing)]
+
use super::*;
use crate::{
objects::{
(person, site)
}
- #[actix_rt::test]
+ #[tokio::test]
#[serial]
async fn test_parse_lemmy_person() {
let context = init_context().await;
cleanup((person, site), &context).await;
}
- #[actix_rt::test]
+ #[tokio::test]
#[serial]
async fn test_parse_pleroma_person() {
let context = init_context().await;
}
async fn cleanup(data: (ApubPerson, ApubSite), context: &LemmyContext) {
- DbPerson::delete(context.pool(), data.0.id).await.unwrap();
- Site::delete(context.pool(), data.1.id).await.unwrap();
+ DbPerson::delete(&mut context.pool(), data.0.id)
+ .await
+ .unwrap();
+ Site::delete(&mut context.pool(), data.1.id).await.unwrap();
}
}