api/resources/Orders/orderController.js
2023-02-06 18:02:09 +05:30

101 lines
2.8 KiB
JavaScript

import { Order } from './orderModel.js'
import { generate } from "generate-password";
export const createOrder = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
// console.log(req?.user)
let isUnique = false;
let order_id = generate({
length: 9,
numbers: true,
lowercase: false,
uppercase: false,
});
while (!isUnique) {
const unqOrder = await Order.findOne({ order_id });
if (!unqOrder) {
isUnique = true;
} else {
order_id = generate({
length: 9,
numbers: true,
lowercase: false,
uppercase: false,
});
}
}
req.body.user = req.user._id
req.body.order_id = order_id
const order = await Order.create(req.body);
res.status(201).json({
success: true,
order,
msg: 'order Created',
});
} catch (error) {
console.log(error);
res.status(500).json({ msg: 'Something went Wrong' })
}
}
export const getAllOrder = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
// console.log(req?.user)
const order = await Order.find().populate({
path: "user",
select: "name -_id",
}).sort({ createdAt: -1 });
if (order) {
res.status(201).json({
success: true,
order,
msg: 'All Order Fetched',
});
}
} catch (error) {
console.log(error);
res.status(500).json({ msg: error.message ? error.message : 'Something went Wrong' })
}
}
export const deleteOneOrder = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
if (!req.params.id) return res.status(400).json({ message: "please Provide Order Id" });
const getOrder = await Order.findById(req.params.id);
if (!getOrder) {
return res.status(404).json({
success: false,
msg: "No Order Found!"
});
}
const order = await Order.findByIdAndDelete(req.params.id)
await order.remove();
res.status(200).json({
success: true,
msg: "Order Deleted Successfully!!",
});
} catch (error) {
console.log(error);
res.status(500).json({ msg: error.message ? error.message : 'Something went Wrong' })
}
}