Skip to content

Commit

Permalink
commit after sending mail for reset password
Browse files Browse the repository at this point in the history
  • Loading branch information
nanda-mik committed May 25, 2020
1 parent c8c4b4f commit 1cf225c
Show file tree
Hide file tree
Showing 31 changed files with 5,907 additions and 4,642 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
node_modules
node_modules
.env
142 changes: 71 additions & 71 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,71 +1,71 @@
const path = require('path');
const express = require('express');
const bodyParser = require('body-parser');
const session = require('express-session');
const csrf = require('csurf');
const flash = require('connect-flash');
const MongoDBStore = require('connect-mongodb-session')(session);
const errorController = require('./controllers/error');
const mongoConnect = require('./util/database').mongoConnect;
const User = require('./models/user');
const dotenv = require('dotenv');
dotenv.config();

const URI = process.env.MONGODB_URI;

const app = express();
const store = new MongoDBStore({
uri: URI,
collection: 'sessions'
});
const csrfProtection = csrf();


app.set('view engine', 'ejs');
app.set('views', 'views');

const adminRoutes = require('./routes/admin');
const shopRoutes = require('./routes/shop');
const authRoutes = require('./routes/auth');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
secret: 'myseccret',
resave: false,
saveUninitialized: false,
store: store
})
);
app.use(csrfProtection);
app.use(flash());


app.use((req, res, next)=>{
if(!req.session.user){
return next();
}
User.findById(req.session.user._id)
.then(user => {
req.user = new User(user.email,user.password,user.cart,user._id);
next();
})
.catch(err => console.log(err));
});

app.use((req, res, next) => {
res.locals.isAuthenticated = req.session.isLoggedIn;
res.locals.csrfToken = req.csrfToken();
next();
});


app.use('/admin', adminRoutes);
app.use(shopRoutes);
app.use(authRoutes);

app.use(errorController.get404);

mongoConnect(() => {
app.listen(3000);
})
const path = require('path');
const express = require('express');
const bodyParser = require('body-parser');
const session = require('express-session');
const csrf = require('csurf');
const flash = require('connect-flash');
const MongoDBStore = require('connect-mongodb-session')(session);
const errorController = require('./controllers/error');
const mongoConnect = require('./util/database').mongoConnect;
const User = require('./models/user');
const dotenv = require('dotenv');
dotenv.config();

const URI = process.env.MONGODB_URI;

const app = express();
const store = new MongoDBStore({
uri: URI,
collection: 'sessions'
});
const csrfProtection = csrf();


app.set('view engine', 'ejs');
app.set('views', 'views');

const adminRoutes = require('./routes/admin');
const shopRoutes = require('./routes/shop');
const authRoutes = require('./routes/auth');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
secret: 'myseccret',
resave: false,
saveUninitialized: false,
store: store
})
);
app.use(csrfProtection);
app.use(flash());


app.use((req, res, next)=>{
if(!req.session.user){
return next();
}
User.findById(req.session.user._id)
.then(user => {
req.user = new User(user.email,user.password,user.cart,user._id);
next();
})
.catch(err => console.log(err));
});

app.use((req, res, next) => {
res.locals.isAuthenticated = req.session.isLoggedIn;
res.locals.csrfToken = req.csrfToken();
next();
});


app.use('/admin', adminRoutes);
app.use(shopRoutes);
app.use(authRoutes);

app.use(errorController.get404);

mongoConnect(() => {
app.listen(3000);
})
186 changes: 93 additions & 93 deletions controllers/admin.js
Original file line number Diff line number Diff line change
@@ -1,93 +1,93 @@
const Product = require('../models/product');

exports.getAddProduct = (req, res, next) => {
res.render('admin/edit-product', {
pageTitle: 'Add Product',
path: '/admin/add-product',
editing: false,
isAuthenticated: req.session.isLoggedIn
});
};

exports.postAddProduct = (req, res, next) => {
const title = req.body.title;
const imageUrl = req.body.imageUrl;
const price = req.body.price;
const description = req.body.description;
const product = new Product(title,
price,
description,
imageUrl,
null,
req.user._id);
product.save()
.then(result => {
// console.log(result);
console.log('Created Product');
res.redirect('/admin/products');
})
.catch(err => {
console.log(err);
});
};

exports.getEditProduct = (req, res, next) => {
const editMode = req.query.edit;
if (!editMode) {
return res.redirect('/');
}
const prodId = req.params.productId;
Product.findById(prodId)
// Product.findById(prodId)
.then(product => {
if (!product) {
return res.redirect('/');
}
res.render('admin/edit-product', {
pageTitle: 'Edit Product',
path: '/admin/edit-product',
editing: editMode,
product: product,
isAuthenticated: req.session.isLoggedIn
});
})
.catch(err => console.log(err));
};

exports.postEditProduct = (req, res, next) => {
const prodId = req.body.productId;
const updatedTitle = req.body.title;
const updatedPrice = req.body.price;
const updatedImageUrl = req.body.imageUrl;
const updatedDesc = req.body.description;
const product = new Product(updatedTitle,updatedPrice,updatedDesc,updatedImageUrl,prodId);
product.save()
.then(result => {
console.log('UPDATED PRODUCT!');
res.redirect('/admin/products');
})
.catch(err => console.log(err));
};

exports.getProducts = (req, res, next) => {
Product.fetchAll()
.then(products => {
res.render('admin/products', {
prods: products,
pageTitle: 'Admin Products',
path: '/admin/products',
isAuthenticated: req.session.isLoggedIn
});
})
.catch(err => console.log(err));
};

exports.postDeleteProduct = (req, res, next) => {
const prodId = req.body.productId;
Product.deleteById(prodId)
.then(() => {
console.log('DESTROYED PRODUCT');
res.redirect('/admin/products');
})
.catch(err => console.log(err));
};
const Product = require('../models/product');

exports.getAddProduct = (req, res, next) => {
res.render('admin/edit-product', {
pageTitle: 'Add Product',
path: '/admin/add-product',
editing: false,
isAuthenticated: req.session.isLoggedIn
});
};

exports.postAddProduct = (req, res, next) => {
const title = req.body.title;
const imageUrl = req.body.imageUrl;
const price = req.body.price;
const description = req.body.description;
const product = new Product(title,
price,
description,
imageUrl,
null,
req.user._id);
product.save()
.then(result => {
// console.log(result);
console.log('Created Product');
res.redirect('/admin/products');
})
.catch(err => {
console.log(err);
});
};

exports.getEditProduct = (req, res, next) => {
const editMode = req.query.edit;
if (!editMode) {
return res.redirect('/');
}
const prodId = req.params.productId;
Product.findById(prodId)
// Product.findById(prodId)
.then(product => {
if (!product) {
return res.redirect('/');
}
res.render('admin/edit-product', {
pageTitle: 'Edit Product',
path: '/admin/edit-product',
editing: editMode,
product: product,
isAuthenticated: req.session.isLoggedIn
});
})
.catch(err => console.log(err));
};

exports.postEditProduct = (req, res, next) => {
const prodId = req.body.productId;
const updatedTitle = req.body.title;
const updatedPrice = req.body.price;
const updatedImageUrl = req.body.imageUrl;
const updatedDesc = req.body.description;
const product = new Product(updatedTitle,updatedPrice,updatedDesc,updatedImageUrl,prodId);
product.save()
.then(result => {
console.log('UPDATED PRODUCT!');
res.redirect('/admin/products');
})
.catch(err => console.log(err));
};

exports.getProducts = (req, res, next) => {
Product.fetchAll()
.then(products => {
res.render('admin/products', {
prods: products,
pageTitle: 'Admin Products',
path: '/admin/products',
isAuthenticated: req.session.isLoggedIn
});
})
.catch(err => console.log(err));
};

exports.postDeleteProduct = (req, res, next) => {
const prodId = req.body.productId;
Product.deleteById(prodId)
.then(() => {
console.log('DESTROYED PRODUCT');
res.redirect('/admin/products');
})
.catch(err => console.log(err));
};
Loading

0 comments on commit 1cf225c

Please sign in to comment.