Updated POST like route to persist data between updates

This commit is contained in:
Keith Holliday
2015-12-28 18:45:34 -06:00
parent cb388eea40
commit 2750446e7b
2 changed files with 6 additions and 12 deletions

View File

@@ -92,12 +92,12 @@ describe('POST /chat/:chatId/like', () => {
return api.post(`/groups/${group._id}/chat/${message.id}/like`);
})
.then((result) => {
expect(result.likes[user._id]).to.equal(undefined);
expect(result.likes[user._id]).to.equal(false);
return api.get(`/groups/${group._id}`);
})
.then((updatedGroup) => {
let messageToCheck = _.find(updatedGroup.chat, {id: message.id});
expect(messageToCheck.likes[user._id]).to.equal(undefined);
expect(messageToCheck.likes[user._id]).to.equal(false);
});
});
});

View File

@@ -133,18 +133,12 @@ api.likeChat = {
if (message.uuid === user._id) throw new NotFound(res.t('messageGroupChatLikeOwnMessage'));
let update;
let update = {$set: {}};
if (!message.likes) message.likes = {};
if (message.likes[user._id]) {
delete message.likes[user._id];
update = {'$unset': {}};
update.$unset[`chat.$.likes.${user._id}`] = '';
} else {
message.likes[user._id] = true;
update = {'$set': {}};
update.$set[`chat.$.likes.${user._id}`] = true;
}
message.likes[user._id] = !message.likes[user._id];
update.$set[`chat.$.likes.${user._id}`] = message.likes[user._id];
return Group.update(
{_id: group._id, 'chat.id': message.id},