fix: fetch actor/object handles "pretty url"
it does an extra fetch which is wasteful but it would fetch and then fail anyway before so i think this is an improvement
This commit is contained in:
parent
3d6c144c55
commit
a7004d1603
1 changed files with 12 additions and 0 deletions
|
@ -328,6 +328,12 @@ impl Fetcher for crate::Context {
|
|||
|
||||
let document = self.pull(id).await?.actor()?;
|
||||
|
||||
if document.id()? != id {
|
||||
if let Some(x) = crate::model::actor::Entity::find_by_ap_id(document.id()?).one(tx).await? {
|
||||
return Ok(x); // already in db but we had to follow the "pretty" url, mehh
|
||||
}
|
||||
}
|
||||
|
||||
self.resolve_user(document, tx).await
|
||||
}
|
||||
|
||||
|
@ -384,6 +390,12 @@ async fn fetch_object_r(ctx: &crate::Context, id: &str, depth: u32, tx: &impl Co
|
|||
|
||||
let object = ctx.pull(id).await?.object()?;
|
||||
|
||||
if object.id()? != id {
|
||||
if let Some(x) = crate::model::object::Entity::find_by_ap_id(object.id()?).one(tx).await? {
|
||||
return Ok(x); // already in db but we had to follow the "pretty" url, mehh
|
||||
}
|
||||
}
|
||||
|
||||
resolve_object_r(ctx, object, depth, tx).await
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue