Improve readability

This commit is contained in:
syuilo 2019-04-18 00:57:06 +09:00
parent 0273a18ae4
commit 9890b3ffa8

View File

@ -36,41 +36,41 @@ export default async (job: Bull.Job): Promise<void> => {
if (keyIdLower.startsWith('acct:')) { if (keyIdLower.startsWith('acct:')) {
logger.warn(`Old keyId is no longer supported. ${keyIdLower}`); logger.warn(`Old keyId is no longer supported. ${keyIdLower}`);
return; return;
}
// アクティビティ内のホストの検証
const host = toPuny(new URL(signature.keyId).hostname);
try {
ValidateActivity(activity, host);
} catch (e) {
logger.warn(e.message);
return;
}
// ブロックしてたら中断
// TODO: いちいちデータベースにアクセスするのはコスト高そうなのでどっかにキャッシュしておく
const meta = await fetchMeta();
if (meta.blockedHosts.includes(host)) {
logger.info(`Blocked request: ${host}`);
return;
}
const _key = await UserPublickeys.findOne({
keyId: signature.keyId
});
if (_key) {
// 登録済みユーザー
user = await Users.findOne(_key.userId) as IRemoteUser;
key = _key;
} else { } else {
// アクティビティ内のホストの検証 // 未登録ユーザーの場合はリモート解決
const host = toPuny(new URL(signature.keyId).hostname); user = await resolvePerson(activity.actor) as IRemoteUser;
try { if (user == null) {
ValidateActivity(activity, host); throw new Error('failed to resolve user');
} catch (e) {
logger.warn(e.message);
return;
} }
// ブロックしてたら中断 key = await UserPublickeys.findOne(user.id).then(ensure);
// TODO: いちいちデータベースにアクセスするのはコスト高そうなのでどっかにキャッシュしておく
const meta = await fetchMeta();
if (meta.blockedHosts.includes(host)) {
logger.info(`Blocked request: ${host}`);
return;
}
const _key = await UserPublickeys.findOne({
keyId: signature.keyId
});
if (_key) {
// 登録済みユーザー
user = await Users.findOne(_key.userId) as IRemoteUser;
key = _key;
} else {
// 未登録ユーザーの場合はリモート解決
user = await resolvePerson(activity.actor) as IRemoteUser;
if (user == null) {
throw new Error('failed to resolve user');
}
key = await UserPublickeys.findOne(user.id).then(ensure);
}
} }
// Update Person activityの場合は、ここで署名検証/更新処理まで実施して終了 // Update Person activityの場合は、ここで署名検証/更新処理まで実施して終了