diff --git a/server/controllers/index.js b/server/controllers/index.js index 8aceb3b..0533247 100644 --- a/server/controllers/index.js +++ b/server/controllers/index.js @@ -1,8 +1,10 @@ +const { getCart } = require('./pages'); const productDetails = require('./productDetails'); const { login, logout } = require('./auth'); module.exports = { login, logout, + getCart, productDetails, }; diff --git a/server/controllers/pages/cart.js b/server/controllers/pages/cart.js new file mode 100644 index 0000000..955a940 --- /dev/null +++ b/server/controllers/pages/cart.js @@ -0,0 +1,12 @@ +const { getItems } = require('../../database/queries/cart'); + +const getCart = async (req, res, next) => { + try { + const { id } = req.userObj; + const items = await getItems(id); + res.json(items); + } catch (err) { + next(err); + } +}; +module.exports = getCart; diff --git a/server/controllers/pages/index.js b/server/controllers/pages/index.js new file mode 100644 index 0000000..f4cb68a --- /dev/null +++ b/server/controllers/pages/index.js @@ -0,0 +1,3 @@ +const getCart = require('./cart'); + +module.exports = { getCart }; diff --git a/server/database/config/build.js b/server/database/config/build.js index 6756646..9c52f99 100644 --- a/server/database/config/build.js +++ b/server/database/config/build.js @@ -9,7 +9,6 @@ const buildDB = () => { return connection.query(sql); }; - buildDB(); module.exports = buildDB; diff --git a/server/database/connection/index.js b/server/database/connection/index.js index 87e916b..99952ed 100644 --- a/server/database/connection/index.js +++ b/server/database/connection/index.js @@ -1,17 +1,17 @@ -require("env2")(".env"); -const { Pool } = require("pg"); +require('env2')('.env'); +const { Pool } = require('pg'); const { DATABASE_URL, TEST_DB_URL, DEV_DB_URL } = process.env; -let dbUrl = ""; -if (process.env.NODE_ENV === "test") { +let dbUrl = ''; +if (process.env.NODE_ENV === 'test') { dbUrl = TEST_DB_URL; -} else if (process.env.NODE_ENV === "development") { +} else if (process.env.NODE_ENV === 'development') { dbUrl = DEV_DB_URL; -} else if (process.env.NODE_ENV === "production") { +} else if (process.env.NODE_ENV === 'production') { dbUrl = DATABASE_URL; } else { - throw new Error("error in database URL !"); + throw new Error('error in database URL !'); } const options = { diff --git a/server/database/queries/cart/getItems.js b/server/database/queries/cart/getItems.js index 02734ab..ad157b2 100644 --- a/server/database/queries/cart/getItems.js +++ b/server/database/queries/cart/getItems.js @@ -1,3 +1,8 @@ const connection = require('../../connection'); -module.exports = (productId, cartId) => connection.query('SELECT products.*, cart_items.quentity FROM products INNER JOIN cart_items ON cart_items.product_id=products.id INNER JOIN users ON cart_items.user_id = users.id WHERE cart_items.user_id = 3;', [productId, cartId]).then((data) => data.rows); +module.exports = (userId) => connection + .query( + 'SELECT products.*, cart_items.quentity FROM products INNER JOIN cart_items ON cart_items.product_id=products.id INNER JOIN users ON cart_items.user_id = users.id WHERE cart_items.user_id = $1;', + [userId], + ) + .then((data) => data.rows); diff --git a/server/middlewares/authentication.js b/server/middlewares/authentication.js index f324304..4318506 100644 --- a/server/middlewares/authentication.js +++ b/server/middlewares/authentication.js @@ -1,4 +1,4 @@ -require("env2")(".env"); +require('env2')('.env'); const jwt = require('jsonwebtoken'); const authentication = (req, res, next) => { @@ -13,7 +13,7 @@ const authentication = (req, res, next) => { return res.status(401).json({ message: 'Unauthorized' }); } - jwt.verify(token, secret, (err, decoded) => { + return jwt.verify(token, secret, (err, decoded) => { if (decoded) { req.userObj = decoded; next(); diff --git a/server/middlewares/index.js b/server/middlewares/index.js index df1e5e7..0287b24 100644 --- a/server/middlewares/index.js +++ b/server/middlewares/index.js @@ -1,8 +1,3 @@ -const signupValidation = require('./signupValidation'); - const authentication = require('./authentication'); -module.exports = { - signupValidation, - authentication, -}; +module.exports = { authentication }; diff --git a/server/routes/index.js b/server/routes/index.js index 9da7444..ecf9e7d 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -1,12 +1,14 @@ const router = require('express').Router(); - -const { logout, login, productDetails } = require('../controllers'); +const { + logout, getCart, login, productDetails, +} = require('../controllers'); +const { authentication } = require('../middlewares'); const { error404, serverError } = require('../controllers/errors'); router.post('/login', login); - router.get('/product/:id', productDetails); router.get('/logout', logout); +router.get('/cart', authentication, getCart); router.use(error404); router.use(serverError);