Fix author creation in operationCallback might cause unique constraint validation error

This commit is contained in:
Wu Cheng-Han 2017-01-12 17:18:24 +08:00
parent ffa14cfeef
commit 7e191acbde
1 changed files with 19 additions and 11 deletions

View File

@ -652,17 +652,25 @@ function operationCallback(socket, operation) {
if (!user) return;
userId = socket.request.user.id;
if (!note.authors[userId]) {
models.Author.create({
noteId: noteId,
userId: userId,
color: user.color
}).then(function (author) {
note.authors[author.userId] = {
userid: author.userId,
color: author.color,
photo: user.photo,
name: user.name
};
models.Author.findOrCreate({
where: {
noteId: noteId,
userId: userId
},
defaults: {
noteId: noteId,
userId: userId,
color: user.color
}
}).spread(function (author, created) {
if (author) {
note.authors[author.userId] = {
userid: author.userId,
color: author.color,
photo: user.photo,
name: user.name
};
}
}).catch(function (err) {
return logger.error('operation callback failed: ' + err);
});