Untitled
unknown
plain_text
10 months ago
3.7 kB
2
Indexable
exports.getSalesManChat = catchAsync(async(req,res,next) => { const {id} = req.body const retailer = await Retailer.findById(toObjectId(id,next)) if(!retailer){ return next(new AppError('retailer not found', 400)); } const results = await Chat.aggregate([ { $match : {retailer: retailer._id}}, { $lookup: { from: 'salesmen', localField: 'sales_man', foreignField: '_id', pipeline: [ { $lookup: { from: 'users', localField: '_id', foreignField: 'profile', pipeline: [ { $project :{name:1,photo:1}} ], as: 'user' } } ], as: 'salesMan' } }, { $lookup: { from: 'messages', localField: 'messages', foreignField: '_id', pipeline: [ { $match :{vu : false,receiver : retailer._id}}, { $count : "messages_not_vu"} ], as: 'messages' } } ]) const data = results.reduce((result, order) => { let obj = {}; obj.salesMan_id = order.sales_man; obj.user_id = order.salesMan[0].user[0]?._id; obj.name = order.salesMan[0].user[0]?.name; obj.photo = order.salesMan[0].user[0]?.photo; obj.messages_not_vu = order.messages[0]?.messages_not_vu result.push(obj); return result; }, []); res.status(200).json({ message: 'successfully', data : data }); }) exports.getRetailersChat = catchAsync(async(req,res,next) => { const {id} = req.body const salesman = await SalesMan.findById(toObjectId(id,next)) if(!salesman){ return next(new AppError('salesman not found', 400)); } console.log(salesman) const results = await Chat.aggregate([ { $match : {sales_man: salesman._id}}, { $lookup: { from: 'retailers', localField: 'retailer', foreignField: '_id', pipeline: [ { $lookup: { from: 'users', localField: '_id', foreignField: 'profile', pipeline: [ { $project :{name:1,photo:1}} ], as: 'user' } } ], as: 'Retailer' } }, { $lookup: { from: 'messages', localField: 'messages', foreignField: '_id', pipeline: [ { $match :{vu : false,receiver : salesman._id}}, { $count : "messages_not_vu"} ], as: 'messages' } } ]) const data = results.reduce((result, order) => { let obj = {}; obj.retailer_id = order.retailer; obj.user_id = order.Retailer[0].user[0]?._id; obj.name = order.Retailer[0].user[0]?.name; obj.photo = order.Retailer[0].user[0]?.photo; obj.messages_not_vu = order.messages[0]?.messages_not_vu result.push(obj); return result; }, []); res.status(200).json({ message: 'successfully', data : data }); })
Editor is loading...
Leave a Comment