fix: internal ids are used for relations

This commit is contained in:
əlemi 2025-02-05 20:29:49 +01:00
parent bf376b15ac
commit dca326626f
Signed by: alemi
GPG key ID: A4895B84D311642C
2 changed files with 11 additions and 4 deletions
core/src/traits
worker/src

View file

@ -488,7 +488,7 @@ pub async fn process_undo(ctx: &crate::Context, activity: impl apb::Activity, tx
Condition::all()
.add(crate::model::announce::Column::Actor.eq(internal_uid))
.add(crate::model::announce::Column::Object.eq(internal_oid))
.add(crate::model::announce::Column::Activity.eq(&undone_activity_id))
.add(crate::model::announce::Column::Activity.eq(undone_activity.internal))
)
.exec(tx)
.await?;

View file

@ -69,20 +69,27 @@ pub async fn process(ctx: Context, job: &model::job::Model) -> crate::JobResult<
let following_internal = upub::model::actor::Entity::ap_to_internal(&following, &tx)
.await?
.ok_or(sea_orm::DbErr::RecordNotFound(following))?;
let activity_id = upub::model::relation::Entity::find()
let activity_id_internal = upub::model::relation::Entity::find()
.filter(upub::model::relation::Column::Follower.eq(follower_internal))
.filter(upub::model::relation::Column::Following.eq(following_internal))
.select_only()
.select_column(upub::model::relation::Column::Activity)
.into_tuple::<i64>()
.one(&tx)
.await?
.ok_or(crate::JobError::ProcessorError(ProcessorError::Incomplete))?;
let activity_id = upub::model::activity::Entity::find_by_id(activity_id_internal)
.select_only()
.select_column(upub::model::activity::Column::Id)
.into_tuple::<String>()
.one(&tx)
.await?
.ok_or(crate::JobError::Forbidden)?;
.ok_or(crate::JobError::ProcessorError(ProcessorError::Incomplete))?;
activity = activity.set_object(apb::Node::link(activity_id));
},
t => return Err(crate::JobError::ProcessorError(
upub::traits::process::ProcessorError::Unprocessable(format!("can't normalize Undo({t})"))
ProcessorError::Unprocessable(format!("can't normalize Undo({t})"))
)),
}
},