From aa4fc113a128093ac644047328e2f41b052cedf7 Mon Sep 17 00:00:00 2001 From: NyxiumYuuki Date: Tue, 1 Jun 2021 22:38:28 +0200 Subject: [PATCH] getConv updated for custom private room + getMembers, newRoom added --- .../routes/conversations.js | 89 +++++++++++++------ 1 file changed, 63 insertions(+), 26 deletions(-) diff --git a/backend/service-privateroom/routes/conversations.js b/backend/service-privateroom/routes/conversations.js index 1d95098..4edb4d9 100644 --- a/backend/service-privateroom/routes/conversations.js +++ b/backend/service-privateroom/routes/conversations.js @@ -22,43 +22,80 @@ router.post("/newConv", async (req, res) => { // get conv router.post("/getConv", async (req, res) => { - if (typeof req.body.sender === 'undefined') - return sendError(res, 'Vous n\'avez pas envoyé le champ sender'); - if (typeof req.body.receiver === 'undefined') - return sendError(res, 'Vous n\'avez pas envoyé le champ receiver'); - try { - const conversation = await Conversation.findOne({$or: [{members: {$eq: [req.body.sender,req.body.receiver]}},{members: {$eq: [req.body.receiver,req.body.sender]}}]},{_id:1}); - sendMessage(res,conversation); - }catch (err){ - sendMessage(res,err); - } -}) + if (typeof req.body.sender === 'undefined' && typeof req.body.member === 'undefined') + return sendError(res, 'Vous n\'avez pas envoyé le champ sender ou member'); + if (typeof req.body.receiver === 'undefined' && typeof req.body.roomName === 'undefined') + return sendError(res, 'Vous n\'avez pas envoyé le champ receiver ou roomName'); -// get conv + if (typeof req.body.sender === 'undefined'){ + try { + const conversation = await Conversation.find({members: {$in: [req.body.member]}, roomName: req.body.roomName},{_id:1}); + if(conversation === []){ + sendError(res, 'Not found'); + } + else{ + sendMessage(res,conversation[0]); + } + }catch (err){ + sendError(res,err); + } + } + else{ + try { + const conversation = await Conversation.findOne({$or: [{members: {$eq: [req.body.sender,req.body.receiver]}},{members: {$eq: [req.body.receiver,req.body.sender]}}]},{_id:1}); + console.log(conversation); + sendMessage(res,conversation); + }catch (err){ + sendError(res,err); + } + } +}); + + +// getRooms router.post("/getRooms", async (req, res) => { if (typeof req.body.member === 'undefined') - return sendError(res, 'Vous n\'avez pas envoyé le champ sender'); + return sendError(res, 'Vous n\'avez pas envoyé le champ member'); try { - const conversation = await Conversation.find({members: {$in: [req.body.member]}, owner: {$exists: true}},{_id:1}); + const conversation = await Conversation.find({members: {$in: [req.body.member]}, owner: {$exists: true}},{}); sendMessage(res,conversation); }catch (err){ - sendMessage(res,err); + sendError(res,err); } -}) +}); + +// getMembers +router.post("/getMembers", async (req, res) => { + if (typeof req.body.conversationid === 'undefined') + return sendError(res, 'Vous n\'avez pas envoyé le champ conversationid'); + try { + const conversation = await Conversation.find({_id: req.body.conversationid},{members: 1}); + sendMessage(res,conversation); + }catch (err){ + sendError(res,err); + } +}); // new Room router.post("/newRoom", async (req, res) => { if (typeof req.body.owner === 'undefined') - return sendError(res, 'Vous n\'avez pas envoyé le champ sender'); - const newConversation = new Conversation( - {members: req.body.owner, owner: req.body.owner}); - - try{ - const savedConversation = await newConversation.save(); - sendMessage(res,savedConversation._id); - }catch (err){ - sendError(res,err); - } + return sendError(res, 'Vous n\'avez pas envoyé le champ owner'); + if (typeof req.body.roomName === 'undefined') + return sendError(res, 'Vous n\'avez pas envoyé le champ roomName'); + await Conversation.updateOne( + {roomName: req.body.roomName}, + {$setOnInsert: {members: req.body.owner, owner: req.body.owner}}, + {upsert:true},function(err,result){ + if(result !== undefined){ + if(typeof result.upserted !== 'undefined'){ + sendMessage(res,result.upserted[0]._id); + }else{ + sendError(res,'Room already exist'); + } + }else{ + sendError(res,err); + } + }); }); // add Room Member