Better error handling

This commit is contained in:
syuilo 2018-04-19 18:58:57 +09:00
parent bd207b5012
commit 5d0ded2a69

View File

@ -80,27 +80,38 @@ export async function createPerson(value: any, resolver?: Resolver): Promise<IUs
const summaryDOM = JSDOM.fragment(person.summary); const summaryDOM = JSDOM.fragment(person.summary);
// Create user // Create user
const user = await User.insert({ let user: IRemoteUser;
avatarId: null, try {
bannerId: null, user = await User.insert({
createdAt: Date.parse(person.published) || null, avatarId: null,
description: summaryDOM.textContent, bannerId: null,
followersCount, createdAt: Date.parse(person.published) || null,
followingCount, description: summaryDOM.textContent,
notesCount, followersCount,
name: person.name, followingCount,
driveCapacity: 1024 * 1024 * 8, // 8MiB notesCount,
username: person.preferredUsername, name: person.name,
usernameLower: person.preferredUsername.toLowerCase(), driveCapacity: 1024 * 1024 * 8, // 8MiB
host, username: person.preferredUsername,
publicKey: { usernameLower: person.preferredUsername.toLowerCase(),
id: person.publicKey.id, host,
publicKeyPem: person.publicKey.publicKeyPem publicKey: {
}, id: person.publicKey.id,
inbox: person.inbox, publicKeyPem: person.publicKey.publicKeyPem
uri: person.id, },
url: person.url inbox: person.inbox,
}) as IRemoteUser; uri: person.id,
url: person.url
}) as IRemoteUser;
} catch (e) {
// duplicate key error
if (e.code === 11000) {
throw new Error('already registered');
}
console.error(e);
throw e;
}
//#region アイコンとヘッダー画像をフェッチ //#region アイコンとヘッダー画像をフェッチ
const [avatarId, bannerId] = (await Promise.all([ const [avatarId, bannerId] = (await Promise.all([