From 3861f3d445d9a6448878a00a23ec1ba76bd73d16 Mon Sep 17 00:00:00 2001 From: Swastik Pratik Date: Sat, 3 Aug 2024 18:45:52 +0530 Subject: [PATCH 1/2] fixed bug --- controllers/productController.js | 4 +++- controllers/sellerController.js | 6 ++++-- index.js | 1 + middleware/authMiddleware.js | 4 +++- models/customerSchema.js | 3 ++- models/orderSchema.js | 3 ++- models/productSchema.js | 14 ++++++++++---- models/sellerSchema.js | 4 +++- routes/route.js | 12 ++++++++++-- utils/token.js | 5 ++++- 10 files changed, 42 insertions(+), 14 deletions(-) diff --git a/controllers/productController.js b/controllers/productController.js index 22d63f8..554d42f 100644 --- a/controllers/productController.js +++ b/controllers/productController.js @@ -28,7 +28,9 @@ const getProducts = async (req, res) => { const getSellerProducts = async (req, res) => { try { - let products = await Product.find({ seller: req.params.id }) + // #6 key should be "_id" not "seller" + let products = await Product.find({ _id: req.params.id }) + console.log(products) ; if (products.length > 0) { res.send(products) } else { diff --git a/controllers/sellerController.js b/controllers/sellerController.js index b9943bb..346bd10 100644 --- a/controllers/sellerController.js +++ b/controllers/sellerController.js @@ -9,7 +9,8 @@ const sellerRegister = async (req, res) => { const seller = new Seller({ ...req.body, - password: bcrypt.hash + // #8 bcrypt.hash --> hashedPass + password: hashedPass }); const existingSellerByEmail = await Seller.findOne({ email: req.body.email }); @@ -51,7 +52,8 @@ const sellerLogIn = async (req, res) => { seller = { ...seller._doc, - token: tokens + // #11 token : tokens ==> token + token }; res.send(seller); diff --git a/index.js b/index.js index 6a2384f..c6f2fdf 100644 --- a/index.js +++ b/index.js @@ -3,6 +3,7 @@ const cors = require("cors") const mongoose = require("mongoose") const dotenv = require("dotenv") + const app = express() const Routes = require("./routes/route.js") diff --git a/middleware/authMiddleware.js b/middleware/authMiddleware.js index 56969c9..602139f 100644 --- a/middleware/authMiddleware.js +++ b/middleware/authMiddleware.js @@ -8,8 +8,10 @@ const authMiddleware = (req, res, next) => { } try { - const decoded = jwt.env(token, process.env.SECRET_KEY); + // #14 jwt.env == > jwt.verify + const decoded = jwt.verify(token, process.env.SECRET_KEY); req.user = decoded; + console.log(req.user); next(); } catch (err) { return res.status(401).json({ message: 'Invalid token' }); diff --git a/models/customerSchema.js b/models/customerSchema.js index c2fcdc6..09dd4e6 100644 --- a/models/customerSchema.js +++ b/models/customerSchema.js @@ -54,7 +54,8 @@ const customerSchema = mongoose.Schema({ }, seller: { type: mongoose.Schema.Types.ObjectId, - ref: 'SELLER' + // #13 ref: 'SELLER' == > ref: 'seller' + ref: 'seller' }, }], shippingData: { diff --git a/models/orderSchema.js b/models/orderSchema.js index bffca5b..13e377a 100644 --- a/models/orderSchema.js +++ b/models/orderSchema.js @@ -117,4 +117,5 @@ const orderSchema = new mongoose.Schema( }, }); -module.exports = mongoose.model("customer", orderSchema); \ No newline at end of file +// #3 changing from "customer" to "order" (cause there is customer collection is already created to it can't be overwritten ) +module.exports = mongoose.model("order", orderSchema); \ No newline at end of file diff --git a/models/productSchema.js b/models/productSchema.js index 8755a9a..ba98b0f 100644 --- a/models/productSchema.js +++ b/models/productSchema.js @@ -45,18 +45,24 @@ const productSchema = mongoose.Schema( }, reviewer: { type: mongoose.Schema.Types.ObjectId, - ref: "CUSTOMERS", + // #12 ref: "CUSTOMERS" == > ref: "customer" + ref: "customer", }, date: { type: Date, - default: Text, + // #1 changing default "text" to "Date.now()" + default: Date.now(), }, }, ], seller: { type: mongoose.Schema.Types.ObjectId, - ref: 'seller' + ref: 'seller', + // #15 + required : true + }, }, { timestamps: false}); -module.exports = mongoose.mongoose("product", productSchema) \ No newline at end of file +// #2 changing mongoose method from "mongoose" to "model" (mongoose.model() method) +module.exports = mongoose.model("product", productSchema) \ No newline at end of file diff --git a/models/sellerSchema.js b/models/sellerSchema.js index 557a1ec..3cc7a16 100644 --- a/models/sellerSchema.js +++ b/models/sellerSchema.js @@ -25,4 +25,6 @@ const sellerSchema = new mongoose.Schema({ } }); -moduleexports = mongoose.model("seller", sellerSchema) \ No newline at end of file +// #7 moduleexports ==> module.exports (changed) + +module.exports = mongoose.model("seller", sellerSchema) \ No newline at end of file diff --git a/routes/route.js b/routes/route.js index 7919542..73d5faf 100644 --- a/routes/route.js +++ b/routes/route.js @@ -1,10 +1,15 @@ const router = require('express').Router(); const authMiddleware = require('../middleware/authMiddleware.js'); +// #4 changed (../controllers/orderController.js) to (../controllers/sellerController.js) + +//sellerRegisterand sellerLogin should import from "sellerController.js" not from "orderController.js" + + const { sellerRegister, sellerLogIn -} = require('../controllers/orderController.js'); +} = require('../controllers/sellerController.js'); const { productCreate, @@ -40,7 +45,7 @@ router.post('/SellerRegister', sellerRegister); router.post('/SellerLogin', sellerLogIn); // Product -router.post('/ProductCreate', productCreate); +router.post('/ProductCreate', authMiddleware , productCreate); router.get('/getSellerProducts/:id', getSellerProducts); router.get('/getProducts', getProducts); router.get('/getProductDetail/:id', getProductDetail); @@ -69,3 +74,6 @@ router.put('/CustomerUpdate/:id', cartUpdate); router.post('/newOrder', newOrder); router.get('/getOrderedProductsByCustomer/:id', getOrderedProductsBySeller); router.get('/getOrderedProductsBySeller/:id', getOrderedProductsBySeller); + +// #5 router was not exported +module.exports = router; diff --git a/utils/token.js b/utils/token.js index 855ef6c..9992f49 100644 --- a/utils/token.js +++ b/utils/token.js @@ -1,6 +1,9 @@ const jwt = require("jsonwebtoken"); const createNewToken = (payload) => { - return jwt.sign({ userId: payload }, process.getuid.SECRET_KEY, { expiresIn: '10d' }); + // #9 process.getuid.SECRET_KEY ==> process.env.SECRET_KEY + return jwt.sign({ userId: payload }, process.env.SECRET_KEY, { expiresIn: '10d' }); } +// #10 there was to no exporting +module.exports = {createNewToken}; \ No newline at end of file From 5d49122a5621d91c646236de26799b6d36a942c9 Mon Sep 17 00:00:00 2001 From: Swastik Pratik Date: Sat, 3 Aug 2024 18:53:37 +0530 Subject: [PATCH 2/2] fixed bug --- index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index c6f2fdf..4b9253f 100644 --- a/index.js +++ b/index.js @@ -7,9 +7,10 @@ const dotenv = require("dotenv") const app = express() const Routes = require("./routes/route.js") +// dotenv.config() should above(here); +dotenv.config(); const PORT = process.env.PORT || 5000 -dotenv.config(); app.use(express.json({ limit: '10mb' })) app.use(cors())