const express = require("express");
const app = express();
const mongoose = require("mongoose");
const bodyparser = require("body-parser");
const authRoute = require("./routes/auth");
const profileRoute = require("./routes/profile");
const paymentRoute = require("./routes/payment");
const courseRoute = require("./routes/course");
const couponRoute = require("./routes/Coupon");
const queryRoute = require("./routes/query");
const adminRoute = require("./routes/admin");
const blogRouter = require("./routes/blog");
const port = process.env.PORT || 5000;
const cors = require("cors");

//const passport = require('passport');
//const cookieSession = require('cookie-session') ;
//require('./passport-setup') ;

const MONGO_URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0.dqxva.mongodb.net/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority`;

app.use(cors());
app.use(bodyparser.json());

// app.use(cookieSession({
//     name: 'test-session',
//     keys: ['key1', 'key2']
//   }))

// const isLoggedIn = (req , res , next) => {
//     if(req.user)
//     {
//         next()
//     }
//     else
//     {
//         res.json({
//             error : "No user"
//         })
//     }
// }

// app.use(passport.initialize());
// app.use(passport.session());

// app.get('/failed' , (req , res) => {
//     res.json({
//         error : "You have failed to login"
//     })
// })

// app.get('/' , (req , res) => {
//     console.log('you are not logged in');

// })

// app.get('/good' ,isLoggedIn ,  (req , res) => {
//     res.json({
//         message:"success" ,
//         user : req.user
//     })
// })

// app.get('/auth/google',
//   passport.authenticate('google', { scope: ['profile' , 'email'] }));

// app.get('/auth/google/callback',
//   passport.authenticate('google', { failureRedirect: '/failed' }),
//   function(req, res) {
//     res.redirect('/good');
//   });

// app.get('/logout', (req , res) => {
//     req.session = null ;
//     req.logout() ;
//     res.redirect('/') ;
// })

mongoose.connect(MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useFindAndModify: false,
});
let conn = mongoose.connection.on("connected", (res) => {
  console.log("Connected to MongoDB");
  app.listen(port, () => {
    console.log("Server Listening on Port", port);
  });
});
app.use(authRoute);

app.use(profileRoute);

app.use(paymentRoute);

app.use(courseRoute);

app.use(adminRoute);

app.use(couponRoute);

app.use(blogRouter);

app.use(queryRoute);