Better error handling
This commit is contained in:
parent
64e10e9619
commit
654daff7ce
2 changed files with 10 additions and 6 deletions
|
@ -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) {
|
||||
|
|
|
@ -193,10 +193,6 @@ export default async (user: User, data: Option, silent = false) => new Promise<N
|
|||
|
||||
res(note);
|
||||
|
||||
if (note == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 統計を更新
|
||||
notesChart.update(note, true);
|
||||
perUserNotesChart.update(user, note, true);
|
||||
|
@ -424,7 +420,9 @@ async function insertNote(user: User, data: Option, tags: string[], emojis: stri
|
|||
} catch (e) {
|
||||
// duplicate key error
|
||||
if (isDuplicateKeyValueError(e)) {
|
||||
return null;
|
||||
const err = new Error('Duplicated note');
|
||||
err.name = 'duplicated';
|
||||
throw err;
|
||||
}
|
||||
|
||||
console.error(e);
|
||||
|
|
Loading…
Reference in a new issue