diff --git a/resources/Content/AboutUsModel.js b/resources/Content/AboutUsModel.js new file mode 100644 index 0000000..ff2511e --- /dev/null +++ b/resources/Content/AboutUsModel.js @@ -0,0 +1,22 @@ +import mongoose from "mongoose"; +const { Schema, model } = mongoose; + +const aboutUsSchema = new Schema( + { + aboutUsContent: { + type: String, + default:'' + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const AboutUs = model( + "AboutUs", + aboutUsSchema +); diff --git a/resources/Content/ContentController.js b/resources/Content/ContentController.js index b366441..52c17fd 100644 --- a/resources/Content/ContentController.js +++ b/resources/Content/ContentController.js @@ -2,6 +2,7 @@ import { PrivacyAndPolicy } from "./PrivacyPolicyModel.js"; import { Refundpolicy } from "./RefundModel.js"; import { Shipping } from "./ShippingModel.js"; import { TermsAndCondition } from "./TermsandConditonModel.js"; +import { AboutUs } from './AboutUsModel.js' export const AddTermsAndConditions = async (req, res) => { try { @@ -51,24 +52,24 @@ export const getTermsAndCondition = async (req, res) => { export const updateTermsAndConditions = async (req, res) => { try { if (!req?.user) return res.status(400).json({ message: "please login !" }); - // new content - const { content } = req.body; + // new content + const { content } = req.body; - // id of the terms and conndition document - const id = req.query.id; - - // object for updated terms and conndition data - const updatedTermsData = { + // id of the terms and conndition document + const id = req.query.id; + + // object for updated terms and conndition data + const updatedTermsData = { termsAndContionContent: content, - addedBy: req.user._id - } - - // update the terms and conndition in database - const termsAndCondition = await TermsAndCondition.findByIdAndUpdate( - { _id: id }, - { $set: updatedTermsData }, - { new: true } - ); + addedBy: req.user._id + } + + // update the terms and conndition in database + const termsAndCondition = await TermsAndCondition.findByIdAndUpdate( + { _id: id }, + { $set: updatedTermsData }, + { new: true } + ); res.status(200).json({ success: true, @@ -88,10 +89,10 @@ export const RefundPolicy = async (req, res) => { if (!req?.user) return res.status(400).json({ message: "please login !" }); // console.log(req?.user) const { content } = req.body; - const refundPolicy = await Refundpolicy.create({ - addedBy: req.user._id, - Refundpolicy: content, - }); + const refundPolicy = await Refundpolicy.create({ + addedBy: req.user._id, + Refundpolicy: content, + }); res.status(200).json({ success: true, @@ -130,22 +131,22 @@ export const updateRefundPolicy = async (req, res) => { try { if (!req?.user) return res.status(400).json({ message: "please login !" }); - const {content} = req.body; - // id of the refund policy document - const id = req.query.id; - - // object for updated refund policy data - const updatedRefundPolicyData = { - Refundpolicy: content, - addedBy: req.user._id - } - - // update the refund policy in database - const refundPolicy = await Refundpolicy.findByIdAndUpdate( - { _id: id }, - { $set: updatedRefundPolicyData }, - { new: true } - ); + const { content } = req.body; + // id of the refund policy document + const id = req.query.id; + + // object for updated refund policy data + const updatedRefundPolicyData = { + Refundpolicy: content, + addedBy: req.user._id + } + + // update the refund policy in database + const refundPolicy = await Refundpolicy.findByIdAndUpdate( + { _id: id }, + { $set: updatedRefundPolicyData }, + { new: true } + ); res.status(200).json({ success: true, @@ -305,7 +306,7 @@ export const updateShipping = async (req, res) => { shippingContent: content, addedBy: req.user._id } - + // update the shipping policy in database const shipping = await Shipping.findByIdAndUpdate( { _id: id }, @@ -325,3 +326,88 @@ export const updateShipping = async (req, res) => { }); } }; + +// About us controller functions + +export const AddAboutUs = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + + req.body.user = req.user._id; + const { content } = req.body; + const aboutUs = await AboutUs.create({ + aboutUs: content, + addedBy: req.user._id, + }); + + res.status(201).json({ + success: true, + aboutUs, + message: "Added successfully", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getAboutUs = async (req, res) => { + try { + // if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + + const aboutUs = await AboutUs.find(); + + res.status(200).json({ + success: true, + aboutUs, + message: "Found successfully ", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const updateAboutUs = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + + // new content + const { content } = req.body; + + // id of the about us document + const id = req.query.id; + + // object for updated about us data + const updatedAboutUsData = { + aboutUsContent: content, + addedBy: req.user._id + } + + // update the about us in database + const aboutUs = await AboutUs.findByIdAndUpdate( + { _id: id }, + { $set: updatedAboutUsData }, + { new: true } + ); + + res.status(200).json({ + success: true, + aboutUs, + message: "updated successfully ", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + + diff --git a/resources/Content/ContentRoutes.js b/resources/Content/ContentRoutes.js index eddc29a..71146c0 100644 --- a/resources/Content/ContentRoutes.js +++ b/resources/Content/ContentRoutes.js @@ -11,7 +11,10 @@ import { updatePrivacyPolicy, updateShipping, updateTermsAndConditions, - updateRefundPolicy + updateRefundPolicy, + AddAboutUs, + getAboutUs, + updateAboutUs } from "./ContentController.js"; import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js"; @@ -51,6 +54,13 @@ router router .route("/refund-policy-update") .patch(isAuthenticatedUser, authorizeRoles("admin"), updateRefundPolicy); -// +//about us +router + .route("/about-us") + .post(isAuthenticatedUser, authorizeRoles("admin"), AddAboutUs); +router.route("/about-us").get(getAboutUs); +router + .route("/about-us-update") + .patch(isAuthenticatedUser, authorizeRoles("admin"), updateAboutUs); export default router; diff --git a/resources/Orders/RazerPayCheckoutController.js b/resources/Orders/RazerPayCheckoutController.js index c39b04f..fe4f436 100644 --- a/resources/Orders/RazerPayCheckoutController.js +++ b/resources/Orders/RazerPayCheckoutController.js @@ -56,15 +56,23 @@ export const checkout = async (req, res) => { const { address, cart, subtotal } = req.body; if (cart.length < 1) return res.status(400).json({ message: "cart is empty!" }); - switch (true) { - //validation - case !address: { - return res.status(404).json({ msg: "please provide shipping address" }); - } - case !subtotal: { - return res.status(404).json({ msg: "please provide product subtotal" }); - } - } + if (!address) + return res + .status(404) + .json({ message: "please select shipping address!" }); + if (!subtotal) + return res + .status(404) + .json({ message: "please provide product subtotal!" }); + // switch (true) { + // //validation + // case !address: { + // return res.status(404).json({ msg: "please select shipping address" }); + // } + // case !subtotal: { + // return res.status(404).json({ msg: "please provide product subtotal" }); + // } + // } let addss = await shippingAddress.findById(address); let shipping = { first_Name: addss.first_Name, @@ -77,12 +85,18 @@ export const checkout = async (req, res) => { country: addss.country, addressId: address, }; + // console.log("cart", cart[0]?.product?.gst); const orderItems = await cart.map((item) => ({ product: item.product._id, name: item.product.name, - price: item.product.total_amount, + price: item.product.price, + total_Amount: item.product.total_amount, + image: item.product.image, quantity: item.quantity, + gst_amount: item.product.gst_amount, + gst_rate: item.product.gst?.tax, + tax_Name: item.product.gst?.name, product_Subtotal: item.subtotal, })); @@ -130,7 +144,7 @@ export const paymentVerification = async (req, res) => { path: "user", select: "name email -_id", }); - console.log("findSameOrder", findSameOrder); + // console.log("findSameOrder", findSameOrder); if (findSameOrder) { (findSameOrder.razorpay_payment_id = razorpay_payment_id), // await Payment.create({ (findSameOrder.isPaid = true), @@ -143,7 +157,7 @@ export const paymentVerification = async (req, res) => { await findSameOrder.save(); } //send email to customer - + // console.log("findSameOrder", findSameOrder); await sendEmail({ to: `${findSameOrder?.user?.email}`, // Change to your recipient @@ -151,10 +165,84 @@ export const paymentVerification = async (req, res) => { subject: `Your Order #${findSameOrder?.orderID} Confirmation`, html: `
Great news! Your order #${findSameOrder?.orderID} has been confirmed. Here are the details
-Great news! Your order #${ + findSameOrder?.orderID + } has been confirmed. Here are the details
+S No. | + +Product Name | +Image | + +Quantity | +Price | +GST Amount | + +SubTotal | + +
---|---|---|---|---|---|---|
${ + index + 1 + } | + +${ + product.name + } | +${ + product.quantity + } | +₹${ + product.price + } | +₹${ + product?.gst_amount + } | +₹${ + product.product_Subtotal + } | + +|
Total Amount : | +₹${ + findSameOrder?.total_amount + } | +