Add files via upload
This commit is contained in:
45
api/controllers/chats.js
Normal file
45
api/controllers/chats.js
Normal file
@@ -0,0 +1,45 @@
|
||||
const chats = require("../models/chat");
|
||||
const _ = require('lodash');
|
||||
|
||||
module.exports.saveMessage = async (req, res) => {
|
||||
try{
|
||||
const {senderId, receiverId, message} = req.body;
|
||||
|
||||
if(!senderId) return res.type('json').status(400).send("Sender id was not provided.");
|
||||
if(!receiverId) return res.type('json').status(400).send("Receiver id was not provided.");
|
||||
if(!message) return res.type('json').status(400).send("Message was not provided");
|
||||
|
||||
const newChat = new chats({
|
||||
senderId:senderId,
|
||||
receiverId:receiverId,
|
||||
message:message
|
||||
});
|
||||
|
||||
await newChat.save();
|
||||
|
||||
return res.type('json').status(201).send(newChat);
|
||||
|
||||
}catch(err) {
|
||||
return res.type('json').status(500).send(err.toString());
|
||||
}
|
||||
};
|
||||
|
||||
module.exports.retrieveMessages = async (req, res) => {
|
||||
try{
|
||||
const {senderId, receiverId} = req.body;
|
||||
|
||||
if(!senderId) return res.type('json').status(400).send("Sender id was not provided.");
|
||||
if(!receiverId) return res.type('json').status(400).send("Receiver id was not provided.");
|
||||
|
||||
const messages = [];
|
||||
const cursor = chats.find({$or : [{$and:[{senderId:senderId}, {receiverId:receiverId}]}, {$and:[{senderId:receiverId}, {receiverId:senderId}]}]}).sort("timestamp").cursor();
|
||||
for (let message = await cursor.next(); message != null; message = await cursor.next()) {
|
||||
messages.push({senderId:message.senderId, receiverId:message.receiverId, message:message.message});
|
||||
}
|
||||
|
||||
return res.type('json').status(200).send(messages);
|
||||
|
||||
}catch(err) {
|
||||
return res.type('json').status(500).send(err.toString());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user