Browse Source

add likes

unknown 1 year ago
parent
commit
60957e95cf
5 changed files with 59 additions and 13 deletions
  1. 26 1
      controllers/messages.js
  2. 5 12
      controllers/user.js
  3. 19 0
      model/message.js
  4. 8 0
      model/schemas/message.js
  5. 1 0
      routes/messages.js

+ 26 - 1
controllers/messages.js

@@ -38,6 +38,31 @@ const listMessagesById = async (req, res, next) => {
 	}
 };
 
+const updateMessageEmoji = async (req, res, next) => {
+	try {
+		const id = req.params.id;
+		const userId = req.user.id;
+		const { emoji } = req.body;
+
+		const userMessage = await MessageModel.updateMessage(id, userId, { emoji });
+		await MessageModel.findByFieldsAndUpdate(
+			userId,
+			userMessage.idTime,
+			userMessage.companionId,
+			{
+				emojiCompanion: emoji,
+			}
+		);
+		return res.status(200).json({
+			status: 'success',
+			code: 200,
+			data: {},
+		});
+	} catch (e) {
+		next(e);
+	}
+};
+
 const removeMessage = async (req, res, next) => {
 	try {
 		const id = req.params.id;
@@ -94,7 +119,6 @@ const removeMessage = async (req, res, next) => {
 const sentMessage = async (req, res, next) => {
 	try {
 		const { id, message, caption } = req.body;
-		console.log(caption);
 		const idTime = Math.round(Date.now() / 1000);
 		const user = req.user;
 		const userId = user.id;
@@ -522,6 +546,7 @@ const fileMessage = async (req, res, next) => {
 module.exports = {
 	listMessages,
 	removeMessage,
+	updateMessageEmoji,
 	listMessagesById,
 	sentMessage,
 	imageMessage,

+ 5 - 12
controllers/user.js

@@ -124,20 +124,13 @@ const getCurrent = async (req, res, next) => {
 			});
 		const id = req.user.id;
 		const online = true;
-		if (user.online === String) {
-			await UserModel.updateUser(id, { online });
-			await ChatModel.updateCompanionsChat(id, { online });
-			const updatedUser = await UserModel.findById(id);
-			return res.status(200).json({
-				status: 'success',
-				code: 200,
-				data: updatedUser,
-			});
-		}
-		return res.json({
+		await UserModel.updateUser(id, { online });
+		await ChatModel.updateCompanionsChat(id, { online });
+		const updatedUser = await UserModel.findById(id);
+		return res.status(200).json({
 			status: 'success',
 			code: 200,
-			data: user,
+			data: updatedUser,
 		});
 	} catch (e) {
 		next(e);

+ 19 - 0
model/message.js

@@ -60,6 +60,15 @@ const removeByFields = async (companionId, idTime, userId) => {
 	return removedMessage;
 };
 
+const findByFieldsAndUpdate = async (companionId, idTime, userId, body) => {
+	const message = await Message.findOne({
+		companionId,
+		idTime,
+		owner: userId,
+	}).updateOne({ ...body });
+	return message;
+};
+
 const removeAll = async (companionId, userId) => {
 	const removedAllMessages = await Message.deleteMany({
 		companionId,
@@ -78,6 +87,14 @@ const updateOwnerMessages = async (options, obj) => {
 	return messages;
 };
 
+const updateMessage = async (id, userId, body) => {
+	return await Message.findByIdAndUpdate(
+		{ _id: id, owner: userId },
+		{ ...body },
+		{ new: true }
+	);
+};
+
 module.exports = {
 	getList,
 	getByField,
@@ -85,7 +102,9 @@ module.exports = {
 	add,
 	remove,
 	removeByFields,
+	findByFieldsAndUpdate,
 	removeAll,
 	updateCompanionsMessages,
 	updateOwnerMessages,
+	updateMessage,
 };

+ 8 - 0
model/schemas/message.js

@@ -54,6 +54,14 @@ const messageSchema = new Schema(
 			type: String,
 			default: null,
 		},
+		emoji: {
+			type: String,
+			default: null,
+		},
+		emojiCompanion: {
+			type: String,
+			default: null,
+		},
 		owner: {
 			type: SchemaTypes.ObjectId,
 			ref: 'user',

+ 1 - 0
routes/messages.js

@@ -31,6 +31,7 @@ router
 
 router
 	.get('/:companionId', guard, controllers.listMessagesById)
+	.patch('/:id', guard, controllers.updateMessageEmoji)
 	.delete('/:id', guard, controllers.removeMessage);
 
 module.exports = router;