Use insert for creating Note (#6440)

This commit is contained in:
MeiMei 2020-06-04 08:59:03 +09:00 committed by GitHub
parent 111eb43fd9
commit 9c4a789a4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 8 deletions

View File

@ -433,30 +433,29 @@ async function insertNote(user: User, data: Option, tags: string[], emojis: stri
// 投稿を作成
try {
let note: Note;
if (insert.hasPoll) {
// Start transaction
await getConnection().transaction(async transactionalEntityManager => {
note = await transactionalEntityManager.save(insert);
await transactionalEntityManager.insert(Note, insert);
const poll = new Poll({
noteId: note.id,
noteId: insert.id,
choices: data.poll!.choices,
expiresAt: data.poll!.expiresAt,
multiple: data.poll!.multiple,
votes: new Array(data.poll!.choices.length).fill(0),
noteVisibility: note.visibility,
noteVisibility: insert.visibility,
userId: user.id,
userHost: user.host
});
await transactionalEntityManager.save(poll);
await transactionalEntityManager.insert(Poll, poll);
});
} else {
note = await Notes.save(insert);
await Notes.insert(insert);
}
return note!;
return await Notes.findOneOrFail(insert.id);
} catch (e) {
// duplicate key error
if (isDuplicateKeyValueError(e)) {
@ -467,7 +466,7 @@ async function insertNote(user: User, data: Option, tags: string[], emojis: stri
console.error(e);
throw new Error('something happened');
throw e;
}
}