From 584ecfb113367f83d57013839a11cfc1e6ef92d9 Mon Sep 17 00:00:00 2001 From: print-signs Date: Sat, 14 Oct 2023 10:00:22 +0530 Subject: [PATCH] api for add category and get all category done --- .env | 4 +- Utils/jwtToken.js | 38 +++++++++--------- app.js | 4 ++ resources/Category/CategoryModel.js | 18 +++++++++ resources/Category/categoryController.js | 49 ++++++++++++++++++++++++ resources/Category/categoryRoutes.js | 9 +++++ 6 files changed, 101 insertions(+), 21 deletions(-) create mode 100644 resources/Category/CategoryModel.js create mode 100644 resources/Category/categoryController.js create mode 100644 resources/Category/categoryRoutes.js diff --git a/.env b/.env index e86dabd..5488adf 100644 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ - -DB_URL="mongodb+srv://admin:b2WQucvAi99mBRRM@cluster0.c9tzwtr.mongodb.net/?retryWrites=true&w=majority" +mongodb +DB_URL="mongodb+srv://printsignsAdmin:dtMmP8h0AjxYpDah@cluster0.srx6va5.mongodb.net/?retryWrites=true&w=majority" PORT = 8000 JWT_SECRET = jdvnvjwrniwj4562jn6@1xsbfeh@wre4Njdf; diff --git a/Utils/jwtToken.js b/Utils/jwtToken.js index 3311de3..661494b 100644 --- a/Utils/jwtToken.js +++ b/Utils/jwtToken.js @@ -1,26 +1,26 @@ //Create Token and saving in cookie const sendToken = (user, statusCode, res) => { - const token = user.getJWTToken(); - // consolelog(token) - //options for cookie - // const options = { - // expires: new Date( - // Date.now() + 20 * 24 * 60 * 60 * 1000 - // ), - // httpOnly: true, - // }; + const token = user.getJWTToken(); + // consolelog(token) + //options for cookie + // const options = { + // expires: new Date( + // Date.now() + 20 * 24 * 60 * 60 * 1000 + // ), + // httpOnly: true, + // }; - res.status(statusCode).cookie("token", token).json({ - // res.status(statusCode).json({ + res.status(statusCode).cookie("token", token).json({ + // res.status(statusCode).json({ - success: true, - // userId: user._id, - // userName: user.name, - // userEmail: user.email, - // userPhone: user.phone, - token, - }); + success: true, + // userId: user._id, + // userName: user.name, + // userEmail: user.email, + // userPhone: user.phone, + token, + }); }; -export default sendToken; \ No newline at end of file +export default sendToken; diff --git a/app.js b/app.js index fd9d80e..c389a42 100644 --- a/app.js +++ b/app.js @@ -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"; +// category Route +import categoryRoute from "./resources/Category/categoryRoutes.js"; //business_Type import Business_TypeRoute from "./resources/setting/Business_Type/Business_routes.js"; @@ -58,6 +60,8 @@ app.use("/api/v1/", user); app.use("/api", ProductRouter); //businesses app.use("/api/businesses", BusinessRoute); +// Category +app.use("/api/category", categoryRoute); //Order app.use("/api", orderRoute); //Departure diff --git a/resources/Category/CategoryModel.js b/resources/Category/CategoryModel.js new file mode 100644 index 0000000..1f1aac9 --- /dev/null +++ b/resources/Category/CategoryModel.js @@ -0,0 +1,18 @@ +import mongoose from "mongoose"; + +const CategorySchema = new mongoose.Schema( + { + categoryName: { + type: String, + required: [true, "Name of category required "], + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const CategoryModel = mongoose.model("CategoryModel", CategorySchema); diff --git a/resources/Category/categoryController.js b/resources/Category/categoryController.js new file mode 100644 index 0000000..4fac20d --- /dev/null +++ b/resources/Category/categoryController.js @@ -0,0 +1,49 @@ +import mongoose from "mongoose"; +import { CategoryModel } from "./CategoryModel.js"; + +// Add new Category +export const addCategory = async (req, res) => { + const { categoryName } = req.body; + if (!req?.user) return res.status(400).json({ message: "please login !" }); + try { + if (!mongoose.Types.ObjectId.isValid(addedBy)) { + return res.status(400).json({ message: "please login again " }); + } + const category = await CategoryModel.create({ + categoryName, + addedBy: req.user._id, + }); + if (category) { + res + .status(201) + .json({ success: true, category, message: "category Added" }); + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getCategories = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + const categories = await CategoryModel.find({ addedBy: req.user._id }).sort( + { + createdAt: -1, + } + ); + + if (!categories) { + return res.status(404).json({ message: "No categories found" }); + } + + res.status(200).json({ success: true, categories }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; diff --git a/resources/Category/categoryRoutes.js b/resources/Category/categoryRoutes.js new file mode 100644 index 0000000..e55516e --- /dev/null +++ b/resources/Category/categoryRoutes.js @@ -0,0 +1,9 @@ +import express from "express"; +import { isAuthenticatedUser } from "../../middlewares/auth.js"; +import { addCategory, getCategories } from "./categoryController.js"; +const router = express.Router(); + +router.route("/add").post(isAuthenticatedUser, addCategory); +router.route("/getCategories").get(isAuthenticatedUser, getCategories); + +export default router;