|
|
@ -12,7 +12,7 @@ const boom = require("boom");
|
|
|
|
|
|
|
|
|
|
|
|
// Get Data Models
|
|
|
|
// Get Data Models
|
|
|
|
const { Supplier, generateSupplierId, FriendRequest,DeliveryBoy} = require("../models/supplier")
|
|
|
|
const { Supplier, generateSupplierId, FriendRequest,DeliveryBoy} = require("../models/supplier")
|
|
|
|
const { User,Counter, generateBookingId,resetCounter,generateCustomerId,ProfilePicture, AddTeamMembers} = require('../models/User')
|
|
|
|
const { User,Counter, generateBookingId,resetCounter,generateCustomerId,ProfilePicture, AddTeamMembers,Cart} = require('../models/User')
|
|
|
|
//const User = require("../models/User");
|
|
|
|
//const User = require("../models/User");
|
|
|
|
|
|
|
|
|
|
|
|
const customJwtAuth = require("../customAuthJwt");
|
|
|
|
const customJwtAuth = require("../customAuthJwt");
|
|
|
@ -1178,4 +1178,97 @@ exports.getFavoriteSuppliers = async (req, reply) => {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.getCartByUserId = async (req, reply) => {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
const { customerId } = req.params;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const cart = await Cart.findOne({ customerId }) || { customerId, items: [] };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reply.send({
|
|
|
|
|
|
|
|
status_code: 200,
|
|
|
|
|
|
|
|
message: "Cart fetched successfully",
|
|
|
|
|
|
|
|
data: cart,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
|
|
console.error("Error fetching cart:", err);
|
|
|
|
|
|
|
|
reply.status(500).send({ error: "Internal server error" });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.addItemToCart = async (req, reply) => {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
const { customerId } = req.params;
|
|
|
|
|
|
|
|
const { productId, name, quantity, price } = req.body;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let cart = await Cart.findOne({ customerId });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!cart) {
|
|
|
|
|
|
|
|
cart = new Cart({ customerId, items: [] });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const existingItem = cart.items.find(item => item.productId === productId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (existingItem) {
|
|
|
|
|
|
|
|
existingItem.quantity += quantity;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
cart.items.push({ productId, name, quantity, price });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await cart.save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reply.send({
|
|
|
|
|
|
|
|
status_code: 200,
|
|
|
|
|
|
|
|
message: "Item added to cart",
|
|
|
|
|
|
|
|
data: cart,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
|
|
console.error("Error adding item:", err);
|
|
|
|
|
|
|
|
reply.status(500).send({ error: "Internal server error" });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.removeItemFromCart = async (req, reply) => {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
const { customerId } = req.params;
|
|
|
|
|
|
|
|
const { productId } = req.body;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const cart = await Cart.findOne({ customerId });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!cart) {
|
|
|
|
|
|
|
|
return reply.status(404).send({ error: "Cart not found" });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cart.items = cart.items.filter(item => item.productId !== productId);
|
|
|
|
|
|
|
|
await cart.save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reply.send({
|
|
|
|
|
|
|
|
status_code: 200,
|
|
|
|
|
|
|
|
message: "Item removed from cart",
|
|
|
|
|
|
|
|
data: cart,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
|
|
console.error("Error removing item:", err);
|
|
|
|
|
|
|
|
reply.status(500).send({ error: "Internal server error" });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.clearCart = async (req, reply) => {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
const { customerId } = req.params;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const cart = await Cart.findOneAndUpdate(
|
|
|
|
|
|
|
|
{ customerId },
|
|
|
|
|
|
|
|
{ items: [] },
|
|
|
|
|
|
|
|
{ new: true }
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reply.send({
|
|
|
|
|
|
|
|
status_code: 200,
|
|
|
|
|
|
|
|
message: "Cart cleared",
|
|
|
|
|
|
|
|
data: cart,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
|
|
console.error("Error clearing cart:", err);
|
|
|
|
|
|
|
|
reply.status(500).send({ error: "Internal server error" });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|