VisionFTF / server / server.js
server.js
Raw
const express = require("express");
const mysql = require("mysql");
const cors = require("cors");

const bcrypt = require("bcrypt");
const saltRounds = 10;

const jwt = require('jsonwebtoken');

const app = express();

app.use(express.json());
app.use(express.urlencoded())

app.use(cors({
}
));

const db = mysql.createConnection({
  user: "root",
  host: "localhost",
  password: "password",
  database: "vision",
});

app.get('/',(req,res) => {
    res.send({id:"priya"});
})

app.post("/register", (req, res) => {
  const username = req.body.name;
  const password = req.body.password;
  const phoneno = req.body.phoneno;
  const email = req.body.email;
  const school = req.body.school;
  const ten = req.body.ten;
  const twelve = req.body.twelve;

  const hash = bcrypt.hashSync(password, saltRounds);

    db.query(
      "INSERT INTO users (name,email,phoneno,hash,school,10mark,12mark) VALUES (?,?,?,?,?,?,?);",
      [username,email,phoneno,hash,school,ten,twelve],
      (err, result) => {
          if(err){
            console.log(err);
            res.sendStatus(500)
          }
          else{
            console.log(result)
            res.sendStatus(200)
          } 
      }
    );
    
});

app.post("/service", (req, res) => {
  const username = req.body.name;
  const phoneno = req.body.phoneno;
  const email = req.body.email;
  const school = req.body.school;
  const ten = req.body.ten;
  const twelve = req.body.twelve;
  const profession = req.body.profession;
  const address = req.body.address;
  const message = req.body.message;
  const section = req.body.section;
  const payment = req.body.payment;
  const type = req.body.type;
  const transferid = req.body.transferid;

    db.query(
      "INSERT INTO service (name,email,phoneno,school,address,10mark,12mark,profession,section,payment,type,transferid,message) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)",
      [username,email,phoneno,school,address,ten,twelve,profession,section,payment,type,transferid,message],
      function(err, result){
          if(err){
            console.log(err);
            res.send({auth:false});
            
          }
          else{
            
            console.log(result);  
            res.json({auth:true, message:"success",result:result});    
          } 
      }
    );
    
});

app.post("/feedback", (req, res) => {
  const username = req.body.name;
  const email = req.body.email;
  const message = req.body.message;
  const section = req.body.section;

    db.query(
      "INSERT INTO feedback (name,email,message,section) VALUES (?,?,?,?)",
      [username,email,message,section],
      function(err, result){
          if(err){
            // console.log(err);
            res.send({auth:false});
            
          }
          else{
            // console.log(result);  
            res.send({auth:true});
                
          } 
      }
    );
    
});


const verifyJWT = (req,res,next) =>{
  const token = req.headers["x-access-token"]
  // console.log(token);
  if(!token){
    res.json({auth:false, message:"fails"});
  }
  else{
    jwt.verify(token,"hellovisionftf",(err,decoded) => {
      
      if(err){
        res.json({auth:false, message:"fails"});
      }
      else{
        req.data = decoded.id;
        next();
      }
    })
  }
}



app.get("/auth",verifyJWT,(req, res) => {
  res.json({auth:true, message:"success",data:req.data});
});



app.post("/login", (req, res) => {
  const email = req.body.email;
  const password = req.body.password;

  db.query(
    "SELECT * FROM users WHERE email = ?;",
    email,
    (err, result) => {
      // console.log(result);
      if (err) {
        
        res.send({ err: err });
      }
      if (result.length > 0) {
        // console.log(result[0].hash)
        bcrypt.compare(password, result[0].hash, (error, response) => {
          if (response) {
            const id=result[0].name;
            const token = jwt.sign({id},"hellovisionftf",{
              expiresIn:3000,
            })
            // console.log("true")
            res.send({auth:true, token :token, result:result[0].name});
          } else {
            res.send({ auth:false,result:"Wrong username/password combination!" });
          }
        });
      } else {
        // console.log(result)
        res.json({auth:false,  result:"no token"});
      }
    }
  );
});


app.get("/videos", (req, res) => {

  db.query(
    "SELECT * FROM videos;",
    (err, result) => {
      // console.log(result);
      if (err) {
        res.send({code:false, err: err });
      }
      else{
        res.send({code:true, result:result});
      }
      
    }
  );
});

app.listen(5000, () => {
  console.log("running server");
});