var express = require('express'); var router = express.Router(); var session; //Database var postgres = require("./../db-connect/db-connect"); // GoogleOauth2.0 passport = require('passport'), auth = require('../public/login/auth'); auth(passport); router.use(passport.initialize()); cookieParser = require('cookie-parser'), cookieSession = require('cookie-session'); router.use(cookieSession({ name: 'session', keys: ['aoisdzflkudheowe777elkjv'] })); router.use(cookieParser()); function isLoggedIn(req, res, next) { console.log("Auth: ", req.session.passport.user.profile.id); if (req.session.passport.user.profile.id) { return next(); } res.redirect('/') } router.get('/', (req, res) => { // if (req.session.passport.user.token) { // res.redirect('/dash'); // } else { res.redirect('/auth/google'); // } }); router.get('/auth/google', passport.authenticate('google', { scope: ['https://www.googleapis.com/auth/userinfo.profile'] })); router.get('/auth/google/callback', passport.authenticate('google', {failureRedirect:'/'}), (req, res) => { // req.session.passport.user.token = req.user.token; res.redirect('/dash'); } ); router.get('/logout', (req, res) => { req.session.passport.user.profile.id = null; req.logout(); res.redirect('/'); }); router.get('/dash', isLoggedIn, function(req, res, next) { // console.log("Session: ", req.session.passport.user.token); // console.log("User ID: " + req.session.passport.user.profile.id); // if (req.session.passport.user.token) { res.render("index"); // } else { // res.redirect('/auth/google'); // } }); //GET Own shoppinglists as JSON router.get("/myshoppinglists", async function(req, res, next) { try { //Get user id: req.session.passport.user.profile.id res.status(200).send(await postgres.getShoppinglistsAdmin(req.session.passport.user.profile.id)); } catch(err) { res.status(400).send(await err); } }); //GET Shared shoppinglists as JSON router.get("/sharedshoppinglists", async function(req, res, next) { try { //Get user id: req.session.passport.user.profile.id res.status(200).send(await postgres.getShoppinglistsShared(req.session.passport.user.profile.id)); } catch(err) { res.status(400).send(await err); } }); //POST new shoppinglist router.post("/shoppinglist", async function(req, res, next) { try { res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, req.session.passport.user.profile.id)); } catch(err) { res.status(400).send(await err); } }); //GET Shoppinglist detail router.get("/shoppinglist_json/:sl_id", async (req, res) => { try { res.status(200).send(await postgres.displayShoppinglist(req.params.sl_id)); } catch(err) { res.status(400).send(await err); } }); //DELETE Shoppinglist router.delete("/shoppinglist", async (req, res) => { try { res.status(200).send(await postgres.deleteShoppinglist(req.body.sl_id)); } catch(err) { res.status(400).send(await err); } }); router.get("/test1", (req, res) => { res.render("index1"); }); router.get("/userinfo_json", (req, res) => { res.send(req.session.passport.user); }); module.exports = router;