mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-03 23:14:13 +00:00 
			
		
		
		
	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が指定されていると、サーバーフェッチを経ずにノートが生成されるが
 | 
						// ここでuriの代わりに添付されてきたNote Objectが指定されていると、サーバーフェッチを経ずにノートが生成されるが
 | 
				
			||||||
	// 添付されてきたNote Objectは偽装されている可能性があるため、常にuriを指定してサーバーフェッチを行う。
 | 
						// 添付されてきた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) {
 | 
					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);
 | 
						res(note);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (note == null) {
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 統計を更新
 | 
						// 統計を更新
 | 
				
			||||||
	notesChart.update(note, true);
 | 
						notesChart.update(note, true);
 | 
				
			||||||
	perUserNotesChart.update(user, note, true);
 | 
						perUserNotesChart.update(user, note, true);
 | 
				
			||||||
| 
						 | 
					@ -424,7 +420,9 @@ async function insertNote(user: User, data: Option, tags: string[], emojis: stri
 | 
				
			||||||
	} catch (e) {
 | 
						} catch (e) {
 | 
				
			||||||
		// duplicate key error
 | 
							// duplicate key error
 | 
				
			||||||
		if (isDuplicateKeyValueError(e)) {
 | 
							if (isDuplicateKeyValueError(e)) {
 | 
				
			||||||
			return null;
 | 
								const err = new Error('Duplicated note');
 | 
				
			||||||
 | 
								err.name = 'duplicated';
 | 
				
			||||||
 | 
								throw err;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		console.error(e);
 | 
							console.error(e);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue