Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | 4x 4x 4x 4x 4x 4x | const Message = require('../models/message.model');
const User = require('../models/user.model');
const Like = require('../models/like.model');
const getChatMessage = async (req, res) => {
const miId = req.uid;
const mensajesTo = req.params.from;
const last30 = await Message.find({
$or: [
{ from: miId, to: mensajesTo },
{ from: mensajesTo, to: miId },
],
})
.sort({ createdAt: 'asc' })
.limit(100);
res.json({
ok: true,
msg: last30,
data: 'Get messages',
});
};
const countLikes = async (req, res) => {
const messageId = req.params.from;
const { uid } = req;
try {
const message = await Message.findById(messageId);
if (!message) {
throw new Error('Invalid message');
}
const user = await User.findById(uid);
if (!user) {
throw new Error('Invalid user');
}
const LikeMessage = await Like.findOne({
userId: user._id,
messageId: message._id,
});
if (!LikeMessage) {
const newLike = new Like({
userId: user._id,
messageId: message._id,
});
const likeData = await newLike.save();
await Message.updateOne(
{ _id: message._id },
{
$push: { likes: likeData },
}
);
const messageUpdated = await Message.findById(messageId);
return res.status(200).json({
ok: true,
msg: 'Like successfully added',
like: messageUpdated,
});
} else {
await Like.deleteOne({ _id: LikeMessage._id });
await Message.updateOne(
{ _id: LikeMessage.messageId },
{
$pull: {
likes: LikeMessage,
},
}
);
const messageUpdated = await Message.findById(messageId);
return res.status(200).json({
ok: true,
msg: 'Like successfully removed',
like: messageUpdated,
});
}
} catch (err) {
console.log(err);
}
};
module.exports = {
getChatMessage,
countLikes,
};
|