mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
fix: resolveLocalId to return null values instead of throwing for no resolution
This commit is contained in:
@@ -107,15 +107,15 @@ Helpers.resolveLocalId = async (input) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error('[[error:activitypub.invalid-id]]');
|
return { type: null, id: null };
|
||||||
} else {
|
|
||||||
throw new Error('[[error:activitypub.invalid-id]]');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return { type: null, id: null };
|
||||||
} else if (input.indexOf('@') !== -1) { // Webfinger
|
} else if (input.indexOf('@') !== -1) { // Webfinger
|
||||||
const [slug] = input.replace(/^acct:/, '').split('@');
|
const [slug] = input.replace(/^acct:/, '').split('@');
|
||||||
const uid = await user.getUidByUserslug(slug);
|
const uid = await user.getUidByUserslug(slug);
|
||||||
return { type: 'user', id: uid };
|
return { type: 'user', id: uid };
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error('[[error:activitypub.invalid-id]]');
|
return { type: null, id: null };
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -53,6 +53,12 @@ Notes.getParentChain = async (uid, input) => {
|
|||||||
|
|
||||||
const chain = new Set();
|
const chain = new Set();
|
||||||
const traverse = async (uid, id) => {
|
const traverse = async (uid, id) => {
|
||||||
|
// Handle remote reference to local post
|
||||||
|
const { type, id: localId } = await activitypub.helpers.resolveLocalId(id);
|
||||||
|
if (type === 'post' && localId) {
|
||||||
|
return traverse(uid, localId);
|
||||||
|
}
|
||||||
|
|
||||||
const exists = await db.exists(`post:${id}`);
|
const exists = await db.exists(`post:${id}`);
|
||||||
if (exists) {
|
if (exists) {
|
||||||
const postData = await posts.getPostData(id);
|
const postData = await posts.getPostData(id);
|
||||||
|
|||||||
Reference in New Issue
Block a user