From 654daff7cefd5c84b8b336fc61b88ec2cea66944 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 12 Apr 2019 13:07:56 +0900 Subject: [PATCH] Better error handling --- src/remote/activitypub/models/note.ts | 8 +++++++- src/services/note/create.ts | 8 +++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index 07991d4eb..eb4175875 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -242,7 +242,13 @@ export async function resolveNote(value: string | IObject, resolver?: Resolver): // リモートサーバーからフェッチしてきて登録 // ここでuriの代わりに添付されてきたNote Objectが指定されていると、サーバーフェッチを経ずにノートが生成されるが // 添付されてきたNote Objectは偽装されている可能性があるため、常にuriを指定してサーバーフェッチを行う。 - return await createNote(uri, resolver); + return await createNote(uri, resolver).catch(e => { + if (e.name === 'duplicated') { + return fetchNote(uri); + } else { + throw e; + } + }); } export async function extractEmojis(tags: ITag[], host: string) { diff --git a/src/services/note/create.ts b/src/services/note/create.ts index b66f61ae8..6906bc71c 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -193,10 +193,6 @@ export default async (user: User, data: Option, silent = false) => new Promise