From 9b05b6ef285b2205ae8ab6b6c4c29f24a3a196ee Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 18 Apr 2019 00:57:06 +0900 Subject: [PATCH] Improve readability --- src/queue/processors/inbox.ts | 64 +++++++++++++++++------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/queue/processors/inbox.ts b/src/queue/processors/inbox.ts index 08101f11e..e65785950 100644 --- a/src/queue/processors/inbox.ts +++ b/src/queue/processors/inbox.ts @@ -36,41 +36,41 @@ export default async (job: Bull.Job): Promise => { if (keyIdLower.startsWith('acct:')) { logger.warn(`Old keyId is no longer supported. ${keyIdLower}`); 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 { - // アクティビティ内のホストの検証 - const host = toPuny(new URL(signature.keyId).hostname); - try { - ValidateActivity(activity, host); - } catch (e) { - logger.warn(e.message); - return; + // 未登録ユーザーの場合はリモート解決 + user = await resolvePerson(activity.actor) as IRemoteUser; + if (user == null) { + throw new Error('failed to resolve user'); } - // ブロックしてたら中断 - // 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); - } + key = await UserPublickeys.findOne(user.id).then(ensure); } // Update Person activityの場合は、ここで署名検証/更新処理まで実施して終了