require("dotenv").config(); var CryptoJS = require("crypto-js"); const { ClickAwayListener } = require("@material-ui/core"); const express = require("express"); const router = express.Router(); const MessDetail = require("../models/messdetail"); const azureblobimport = require("./azureblob"); router.get("/", async (req, res) => { try { // res.send("Get Request"); const messdetails = await MessDetail.find(); res.json(messdetails); } catch (err) { res.send("Error -" + err); } }); router.get("/getone/:id", async (req, res) => { try { // res.send("Get Request"); const messdetail = await MessDetail.findById(req.params.id); res.json(messdetail); } catch (err) { res.send("Error -" + err); } }); router.post("/auth", async (req, res) => { // Pass lenght for 128bit AES is max 16char..... try { // Encrypting the pass key = CryptoJS.enc.Base64.parse(process.env.SECRET_KEY); iv = CryptoJS.enc.Base64.parse(process.env.SECRET_IV); var cipherData = CryptoJS.AES.encrypt(req.body.pass, key, { iv: iv, }).toString(); // Decrypt // var data = CryptoJS.AES.decrypt(cipherData, key, { iv: iv }); // console.log(cipherData); // res.send("Get Request"); const messdetail = await MessDetail.findOne({ email: req.body.email, pass: cipherData, }); res.json(messdetail); console.log("Auth Route"); console.log("mail: ", req.body.email); console.log("pass: ", req.body.pass); } catch (err) { res.send("Error -" + err); } }); router.post("/", async (req, res) => { // Encrypting the pass key = CryptoJS.enc.Base64.parse(process.env.SECRET_KEY); iv = CryptoJS.enc.Base64.parse(process.env.SECRET_IV); var pcipherData = CryptoJS.AES.encrypt(req.body.pass, key, { iv: iv, }).toString(); // console.log(pcipherData); const messdetail = new MessDetail({ messname: req.body.messname, messaddress: req.body.messaddress, messcontact: req.body.messcontact, messthaliprice: req.body.messthaliprice, messthaliprice: req.body.messmonthlyprice, messthaliviews: req.body.messviews, messimage: req.body.messimage, messmenuimage: req.body.messmenuimage, messveg: req.body.messveg, messnonveg: req.body.messnonveg, messparcel: req.body.messparcel, messonline: req.body.messonline, email: req.body.email, pass: pcipherData, }); try { const a1 = await messdetail.save(); res.json(a1); } catch (err) { res.send("Error -" + err); } }); router.patch("/:id", async (req, res) => { try { // Encrypting the pass key = CryptoJS.enc.Base64.parse(process.env.SECRET_KEY); iv = CryptoJS.enc.Base64.parse(process.env.SECRET_IV); var ucipherData = CryptoJS.AES.encrypt(req.body.pass, key, { iv: iv, }).toString(); const messdetail = await MessDetail.findByIdAndUpdate(req.params.id); if (req.body.messname != null) { messdetail.messname = req.body.messname; } if (req.body.messaddress != null) { messdetail.messaddress = req.body.messaddress; } if (req.body.messcontact != null) { messdetail.messcontact = req.body.messcontact; } if (req.body.messviews != null) { messdetail.messviews = req.body.messviews; } if (req.body.messthaliprice != null) { messdetail.messthaliprice = req.body.messthaliprice; } if (req.body.messmonthlyprice != null) { messdetail.messmonthlyprice = req.body.messmonthlyprice; } if (req.body.messimage != null) { messdetail.messimage = req.body.messimage; } if (req.body.messmenuimage != null) { messdetail.messmenuimage = req.body.messmenuimage; } if (req.body.messveg != null) { messdetail.messveg = req.body.messveg; } if (req.body.messnonveg != null) { messdetail.messnonveg = req.body.messnonveg; } if (req.body.messparcel != null) { messdetail.messparcel = req.body.messparcel; } if (req.body.messonline != null) { messdetail.messonline = req.body.messonline; } if (req.body.email != null) { messdetail.email = req.body.email; } if (req.body.pass != null) { messdetail.pass = ucipherData; } const a1 = await messdetail.save(); res.json(a1); } catch (err) { res.send("Error -" + err); } }); router.patch("/upmessimages/:id", async (req, res) => { try { // console.log(req.body); let imageb64 = req.body.imageb64; let idnow = req.body.messid; let imageto = req.body.imageto; // const messinfo = req.params; var fres = await azureblobimport.azureblob(idnow, imageto, imageb64); // Updating Mongo DB const messdetail = await MessDetail.findByIdAndUpdate(idnow); if (imageto == "messmenuimages") { // console.log("in 1"); messdetail.messmenuimage = "https://blobstorageformessmenu.blob.core.windows.net/messmenuimages/" + idnow + ".jpeg"; } else if (imageto == "messimages") { // console.log("in 2"); messdetail.messimage = "https://blobstorageformessmenu.blob.core.windows.net/messimages/" + idnow + ".jpeg"; } else { console.log("Wrong path"); } if ( messdetail.messimage != req.body.messimagep || messdetail.messmenuimage != req.body.messmenuimagep ) { // console.log(messdetail.messimage != req.body.messimagep); // console.log(messdetail.messmenuimage != req.body.messmenuimagep); // console.log(messdetail.messmenuimage); // console.log(req.body.messmenuimagep); // console.log("New"); const mongoimageurl = await messdetail.save(); } else { // console.log("old"); // const mongoimageurl = null; } // console.log("Whats going on :", mongoimageurl); res.json({ fres, mongoimageurl }); } catch (err) { res.send("Error -" + err); } }); router.delete("/:id", async (req, res) => { try { const messdetail = await MessDetail.findById(req.params.id); const a1 = await messdetail.remove(); res.json(a1); } catch (err) { res.send("Error -" + err); } }); module.exports = router;