desing is done

This commit is contained in:
print-signs 2023-10-30 16:47:15 +05:30
parent a7a17e471c
commit 39a565cb0e
4 changed files with 199 additions and 0 deletions

4
app.js
View File

@ -37,6 +37,8 @@ import StateRouter from "./resources/setting/state/state_routes.js";
import LanguageRoute from "./resources/setting/Language/language_routes.js";
//purpose
import PurposeRoute from "./resources/setting/Purpose/Purpose_routes.js";
// Design Router
import designRoute from "./resources/Design/designRouter.js";
// category Route
import categoryRoute from "./resources/Category/categoryRoutes.js";
import ContentRoute from "./resources/Content/ContentRoutes.js";
@ -59,6 +61,8 @@ app.use("/api/v1/", user);
app.use("/api", ProductRouter);
//businesses
// app.use("/api/businesses", BusinessRoute);
// Design
app.use("/api/design", designRoute);
// Category
app.use("/api/category", categoryRoute);
// Content

View File

@ -0,0 +1,151 @@
import mongoose from "mongoose";
import cloudinary from "../../Utils/cloudinary.js";
import { DesignModel } from "./designModel.js";
// Add new Category
export const addDesign = async (req, res) => {
const { designName } = req.body;
const { designImage } = req.files;
// console.log(categoryName, categoryImage);
if (!req?.user) return res.status(400).json({ message: "please login !" });
try {
if (!mongoose.Types.ObjectId.isValid(req.user._id)) {
return res.status(400).json({ message: "please login again " });
}
const result = await cloudinary.v2.uploader.upload(
designImage.tempFilePath,
{
folder: "jatinMor/design",
}
);
if (result) {
const design = await DesignModel.create({
designName,
designImage: result,
addedBy: req.user._id,
});
if (design) {
return res
.status(201)
.json({ success: true, design, message: "design Added" });
}
}
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went Wrong",
});
}
};
export const getDesign = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
const designs = await DesignModel.find({ addedBy: req.user._id }).sort({
createdAt: -1,
});
if (!designs) {
return res.status(404).json({ message: "No design found" });
}
res.status(200).json({ success: true, designs });
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went wrong",
});
}
};
export const updateDesign = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
const { _id } = req.params;
const { designName } = req.body;
const olderImage = req.body?.olderImage;
const designImage = req.files?.designImage;
if (!mongoose.Types.ObjectId.isValid(_id)) {
return res.status(404).json({ error: "Can not find the document " });
}
// find the document with the id to delete the image from cloudinary
if (JSON.parse(olderImage).length == 0) {
const deletefromCloudinary = await DesignModel.findOne({ _id: _id });
const deleteresponse = await cloudinary.v2.uploader.destroy(
deletefromCloudinary.designImage.public_id
);
if (deleteresponse) {
const result = await cloudinary.v2.uploader.upload(
designImage.tempFilePath,
{
folder: "jatinMor/design",
}
);
const update = await DesignModel.findOneAndUpdate(
{ _id: _id },
{ designName: designName, designImage: result }, // Provide the updated categoryName
{ new: true } // To return the updated document
);
if (!update) {
return res
.status(404)
.json({ message: "Can not update document, something went wrong" });
} else {
return res.status(200).json({ success: true, update });
}
}
} else {
const update = await DesignModel.findOneAndUpdate(
{ _id: _id },
{ designName: designName, designImage: JSON.parse(olderImage) }, // Provide the updated categoryName
{ new: true } // To return the updated document
);
if (update) {
return res.status(200).json({ success: true, update });
}
}
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went wrong",
});
}
};
export const deleteDesign = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
const { _id } = req.params;
if (!mongoose.Types.ObjectId.isValid(_id)) {
return res.status(404).json({ error: "Can not find the document " });
}
const deletefromCloudinary = await DesignModel.findOne({ _id: _id });
const deleteresponse = await cloudinary.v2.uploader.destroy(
deletefromCloudinary.designImage.public_id
);
if (deleteresponse) {
const deleteDesign = await DesignModel.findOneAndDelete({ _id: _id });
if (!deleteDesign) {
return res.status(404).json({
error: "Can not find the document with the provided id to delete ",
});
}
res.status(200).json({ success: true, deleteDesign });
} else {
return res.status(404).json({ error: "can not delete the design " });
}
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went wrong",
});
}
};

View File

@ -0,0 +1,19 @@
import mongoose from "mongoose";
const DesignSchema = new mongoose.Schema(
{
designName: {
type: String,
required: [true, "Name of desing required "],
},
designImage: {},
addedBy: {
type: mongoose.Schema.ObjectId,
ref: "User",
required: true,
},
},
{ timestamps: true }
);
export const DesignModel = mongoose.model("DesignModel", DesignSchema);

View File

@ -0,0 +1,25 @@
import express from "express";
import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js";
import {
addDesign,
deleteDesign,
getDesign,
updateDesign,
} from "./designController.js";
const router = express.Router();
router
.route("/add")
.post(isAuthenticatedUser, authorizeRoles("admin"), addDesign);
router
.route("/getDesigns")
.get(isAuthenticatedUser, authorizeRoles("admin"), getDesign);
router
.route("/update/:_id")
.patch(isAuthenticatedUser, authorizeRoles("admin"), updateDesign);
router
.route("/delete/:_id")
.delete(isAuthenticatedUser, authorizeRoles("admin"), deleteDesign);
export default router;