const { Supplier, FriendRequest } = require('../models/supplier'); const { User } = require('../models/User') const boom = require("boom"); const fastify = require("fastify")({ logger: true, }); // Handle friend request creation exports.friendRequest = async (request, reply) => { try { const { senderId, receiverId } = request.body; // Check if the sender and receiver exist in the database // const sender = await User.findById(senderId); // const receiver = await Supplier.findById(receiverId); // console.log("sender" , sender) // console.log("receiver" , receiver) const sender = await User.findOne(senderId); const receiver = await Supplier.findOne(receiverId); console.log("sender" , sender.customerId) console.log("receiver" , receiver.supplierId) if (!sender || !receiver) { throw new Error('Sender or receiver not found'); } // Check if a friend request already exists between the two users // const existingRequest = await FriendRequest.findOne({ sender: senderId, receiver: receiverId }); const existingRequest = await FriendRequest.findOne({ customerId: sender.customerId, supplierId: receiver.supplierId}); console.log(existingRequest, " .. exist") if (existingRequest) { throw new Error('Friend request already sent'); } const friendRequest = new FriendRequest({ customerId: sender.customerId, supplierId: receiver.supplierId}); // // Create a new friend request // const friendRequest = new FriendRequest({ // sender: senderId, // receiver: receiverId // }); await friendRequest.save(); console.log("friendRequest", friendRequest) reply.send({ message: 'Friend request sent' }); } catch (err) { reply.status(400).send({ error: err.message }); } }; // Handle friend request acceptance exports.friendRequestAccept = async (request, reply) => { try { //const {friendRequestId} = request.body; const {supplierId} = request.body; // Update the friend request status to 'accepted' // const friendRequest = await FriendRequest.findByIdAndUpdate(friendRequestId, { status: 'accepted' }); const friendRequest = await FriendRequest.findOneAndUpdate({supplierId}, { status: 'accepted' }); console.log("friendRequest....---", friendRequest) if (!friendRequest) { throw new Error('Friend request not found'); } reply.send({ message: 'Friend request accepted' }); } catch (err) { reply.status(400).send({ error: err.message }); } }; // Handle friend request rejection exports.friendRequestReject = async (request, reply) => { try { //const {friendRequestId} = request.body; const {supplierId} = request.body; // Update the friend request status to 'rejected' // const friendRequest = await FriendRequest.findByIdAndUpdate(friendRequestId, { status: 'rejected' }); const friendRequest = await FriendRequest.findOneAndUpdate({supplierId}, { status: 'rejected' }); console.log("friendRequest....---", friendRequest) if (!friendRequest) { throw new Error('Friend request not found'); } reply.send({ message: 'Friend request rejected' }); } catch (err) { reply.status(400).send({ error: err.message }); } };