You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
4.6 KiB

const { Supplier, FriendRequest } = require('../models/supplier');
const { User } = require('../models/User')
const boom = require("boom");
const fastify = require("fastify")({
logger: true,
});
3 years ago
const moment = require('moment');
// Handle friend request creation
3 years ago
// exports.friendRequest = async (request, reply) => {
// try {
// // const { senderId, receiverId } = request.body;
// const customerId = request.body.customerId;
// const supplierId = request.body.supplierId;
// // 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({ customerId : customerId});
// const receiver = await Supplier.findOne({ supplierId : supplierId});
// 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({ timestamp: friendRequest.timestamp, message: 'Friend request sent' });
// } catch (err) {
// reply.status(400).send({ error: err.message });
// }
// };
exports.friendRequest = async (request, reply) => {
try {
const customerId = request.body.customerId;
const supplierId = request.body.supplierId;
3 years ago
const sender = await User.findOne({ customerId: customerId });
const receiver = await Supplier.findOne({ supplierId: supplierId });
if (!sender || !receiver) {
throw new Error('Sender or receiver not found');
}
3 years ago
const existingRequest = await FriendRequest.findOne({ customerId: sender.customerId, supplierId: receiver.supplierId});
if (existingRequest) {
throw new Error('Friend request already sent');
}
3 years ago
const timestamp = moment().format('MM/DD/YYYY, hh:mm:ss A');
const friendRequest = new FriendRequest({
customerId: sender.customerId,
supplierId: receiver.supplierId,
timestamp: timestamp
});
await friendRequest.save();
reply.send({ timestamp: friendRequest.timestamp, message: 'Friend request sent' });
} catch (err) {
reply.status(400).send({ error: err.message });
}
};
3 years ago
// Handle friend request acceptance
exports.friendRequestAccept = async (request, reply) => {
try {
3 years ago
//const {friendRequestId} = request.body;
const {supplierId,customerId} = request.body;
// Update the friend request status to 'accepted'
3 years ago
// const friendRequest = await FriendRequest.findByIdAndUpdate(friendRequestId, { status: 'accepted' });
const friendRequest = await FriendRequest.findOneAndUpdate({supplierId,customerId }, { 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 {
3 years ago
//const {friendRequestId} = request.body;
const {supplierId, customerId} = request.body;
// Update the friend request status to 'rejected'
3 years ago
// const friendRequest = await FriendRequest.findByIdAndUpdate(friendRequestId, { status: 'rejected' });
const friendRequest = await FriendRequest.findOneAndUpdate({supplierId, customerId}, { 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 });
}
};