Commit 8b0a4e39 authored by Balasuriya D.A.M.'s avatar Balasuriya D.A.M.

Create Group Chat API

parent cfd37a4b
......@@ -73,4 +73,39 @@ const fetchChats = asyncHandler(async (req, res) => {
}
});
module.exports = { accessChat, fetchChats };
\ No newline at end of file
const createGroupChat = asyncHandler(async (req, res) => {
if (!req.body.users || !req.body.name) {
return res.status(400).send({ message: "Please Fill all the feilds" });
}
var users = JSON.parse(req.body.users);
if (users.length < 2) { // minimun number of users need for group chat
return res
.status(400)
.send("More than 2 users are required to form a organization chat"); //group chat need more than 2 users
}
users.push(req.user);
try {
const groupChat = await Chat.create({
chatName: req.body.name,
users: users,
isGroupChat: true,
groupAdmin: req.user,
});
//fetch group chat from DB
const fullGroupChat = await Chat.findOne({ _id: groupChat._id })
.populate("users", "-password")
.populate("groupAdmin", "-password");
res.status(200).json(fullGroupChat);
} catch (error) {
res.status(400);
throw new Error(error.message);
}
});
module.exports = { accessChat, fetchChats, createGroupChat };
\ No newline at end of file
const express = require("express");
const { accessChat, fetchChats } = require("../controllers/chatControllers");
const { accessChat, fetchChats, createGroupChat } = require("../controllers/chatControllers");
const { protect } = require("../middleware/authMiddleware");
......@@ -11,7 +11,7 @@ const router = express.Router();
router.route("/").post(protect, accessChat); //API route for one on one chat
router.route("/").get(protect, fetchChats);
//router.route("/group").post(protect, createGroupChat); //create group
router.route("/group").post(protect, createGroupChat); //create group
//router.route("/rename").put(protect, renameGroup); //update group
//router.route("/groupremove").put(protect, removeFromGroup); //remove from group
//router.route("/groupadd").put(protect, addToGroup); //add someone to group
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment