diff --git a/app.js b/app.js index c389a42..6c375f7 100644 --- a/app.js +++ b/app.js @@ -39,6 +39,7 @@ import LanguageRoute from "./resources/setting/Language/language_routes.js"; import PurposeRoute from "./resources/setting/Purpose/Purpose_routes.js"; // category Route import categoryRoute from "./resources/Category/categoryRoutes.js"; +import ContentRoute from "./resources/Content/ContentRoutes.js"; //business_Type import Business_TypeRoute from "./resources/setting/Business_Type/Business_routes.js"; @@ -62,6 +63,8 @@ app.use("/api", ProductRouter); app.use("/api/businesses", BusinessRoute); // Category app.use("/api/category", categoryRoute); +// Content +app.use("/api/content", ContentRoute); //Order app.use("/api", orderRoute); //Departure diff --git a/resources/Content/ContentController.js b/resources/Content/ContentController.js new file mode 100644 index 0000000..05396e7 --- /dev/null +++ b/resources/Content/ContentController.js @@ -0,0 +1,229 @@ +import { PrivacyAndPolicy } from "./PrivacyPolicyModel.js"; +import { Shipping } from "./ShippingModel.js"; +import { TermsAndCondition } from "./TermsandConditonModel.js"; + +export const AddTermsAndConditions = 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 termsAndCondition = await TermsAndCondition.create({ + termsAndContionContent: content, + addedBy: req.user._id, + }); + + res.status(201).json({ + success: true, + termsAndCondition, + message: "Added successfully", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getTermsAndCondition = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + + const termsAndCondition = await TermsAndCondition.find({ + addedBy: req.user._id, + }); + + res.status(200).json({ + success: true, + termsAndCondition, + message: "Found successfully ", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const updateTermsAndConditions = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + const { content } = req.body; + const termsAndCondition = await TermsAndCondition.findOneAndUpdate( + { + addedBy: req.user._id, + }, + { + termsAndContionContent: content, + } + ); + + res.status(200).json({ + success: true, + termsAndCondition, + message: "updated successfully ", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +// Privacy policy controller functions + +export const AddPrivacyAndPolicy = 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 privacyAndPolicy = await PrivacyAndPolicy.create({ + privacyAndPolicyContent: content, + addedBy: req.user._id, + }); + + res.status(201).json({ + success: true, + privacyAndPolicy, + message: "Added successfully", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getPrivacyPolicy = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + + const privacyAndPolicy = await PrivacyAndPolicy.find({ + addedBy: req.user._id, + }); + + res.status(200).json({ + success: true, + privacyAndPolicy, + message: "Found successfully ", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const updatePrivacyPolicy = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + const { content } = req.body; + const privacyAndPolicy = await PrivacyAndPolicy.findOneAndUpdate( + { + addedBy: req.user._id, + }, + { + privacyAndPolicyContent: content, + } + ); + + res.status(200).json({ + success: true, + privacyAndPolicy, + message: "updated successfully ", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +// Shipping Controller + +export const AddShipping = 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 shipping = await Shipping.create({ + shippingContent: content, + addedBy: req.user._id, + }); + + res.status(201).json({ + success: true, + shipping, + message: "Added successfully", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getShipping = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + + const shipping = await Shipping.find({ + addedBy: req.user._id, + }); + + res.status(200).json({ + success: true, + shipping, + message: "Found successfully ", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const updateShipping = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + const { content } = req.body; + const shipping = await Shipping.findOneAndUpdate( + { + addedBy: req.user._id, + }, + { + shippingContent: content, + } + ); + + res.status(200).json({ + success: true, + shipping, + 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 new file mode 100644 index 0000000..b5a8dc4 --- /dev/null +++ b/resources/Content/ContentRoutes.js @@ -0,0 +1,50 @@ +import express from "express"; +import { + AddPrivacyAndPolicy, + AddShipping, + AddTermsAndConditions, + getPrivacyPolicy, + getShipping, + getTermsAndCondition, + updatePrivacyPolicy, + updateShipping, + updateTermsAndConditions, +} from "./ContentController.js"; +import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js"; + +const router = express.Router(); + +router + .route("/terms-and-conditions") + .post(isAuthenticatedUser, authorizeRoles("admin"), AddTermsAndConditions); +router + .route("/terms-and-conditions") + .get(isAuthenticatedUser, authorizeRoles("admin"), getTermsAndCondition); +router + .route("/terms-and-condition-update") + .patch( + isAuthenticatedUser, + authorizeRoles("admin"), + updateTermsAndConditions + ); +router + .route("/privacy-and-policy") + .post(isAuthenticatedUser, authorizeRoles("admin"), AddPrivacyAndPolicy); +router + .route("/privacy-and-policy") + .get(isAuthenticatedUser, authorizeRoles("admin"), getPrivacyPolicy); +router + .route("/privacy-and-policy-update") + .patch(isAuthenticatedUser, authorizeRoles("admin"), updatePrivacyPolicy); + +router + .route("/shipping-and-policy") + .post(isAuthenticatedUser, authorizeRoles("admin"), AddShipping); +router + .route("/shipping-and-policy") + .get(isAuthenticatedUser, authorizeRoles("admin"), getShipping); +router + .route("/shipping-and-policy-update") + .patch(isAuthenticatedUser, authorizeRoles("admin"), updateShipping); + +export default router; diff --git a/resources/Content/PrivacyPolicyModel.js b/resources/Content/PrivacyPolicyModel.js new file mode 100644 index 0000000..9d083a2 --- /dev/null +++ b/resources/Content/PrivacyPolicyModel.js @@ -0,0 +1,21 @@ +import mongoose from "mongoose"; +const { Schema, model } = mongoose; + +const privacyAndPolicySchema = new Schema( + { + privacyAndPolicyContent: { + type: String, + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const PrivacyAndPolicy = model( + "PrivacyAndPolicy", + privacyAndPolicySchema +); diff --git a/resources/Content/ShippingModel.js b/resources/Content/ShippingModel.js new file mode 100644 index 0000000..c2ada36 --- /dev/null +++ b/resources/Content/ShippingModel.js @@ -0,0 +1,18 @@ +import mongoose from "mongoose"; +const { Schema, model } = mongoose; + +const shippingSchema = new Schema( + { + shippingContent: { + type: String, + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const Shipping = model("Shipping", shippingSchema); diff --git a/resources/Content/TermsandConditonModel.js b/resources/Content/TermsandConditonModel.js new file mode 100644 index 0000000..38f1afb --- /dev/null +++ b/resources/Content/TermsandConditonModel.js @@ -0,0 +1,21 @@ +import mongoose from "mongoose"; +const { Schema, model } = mongoose; + +const termsAndContionSchema = new Schema( + { + termsAndContionContent: { + type: String, + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const TermsAndCondition = model( + "TermsAndCondition", + termsAndContionSchema +);