Skip to content

Commit

Permalink
Forgot Password Added
Browse files Browse the repository at this point in the history
  • Loading branch information
utsavshukla committed Jan 7, 2021
1 parent aca14fe commit 9d10a65
Show file tree
Hide file tree
Showing 31 changed files with 812 additions and 316 deletions.
217 changes: 119 additions & 98 deletions controller/image/addImage.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,118 @@
// const mongoose = require("mongoose");
// const multer = require("multer");
// const fs = require("fs");
// const Vision = require("../../models/vision");
// const {get_features} = require('../../predict');
// const util = require('util');


// //for multiple file

// class AddImage {

// constructor() {
// this.readFile = util.promisify(fs.readFile);
// }

// getStuff(path) {
// return this.readFile(path);
// }

// async process_image(user,element,req){

// // console.log(user);

// let features = await get_features(element.path);
// let feature_list = features.slice(0,5);
// await this.getStuff(element.path).then(async(data)=>{

// let image_mapping = user[0].image;
// // console.log(image_mapping);

// image_mapping.push({img_name : element.filename,img_label : feature_list});


// //for labels
// let label_mapping = user[0].image_labels;
// if(label_mapping.length == 0){
// label_mapping.push({name : "All" ,label : {img_name : element.filename}});
// }
// else{
// let found = label_mapping.find((ele)=>{return (ele.name === 'All')});
// if(found !== undefined){
// found.label.push({img_name : element.filename});
// }
// }

// feature_list.forEach(function (item) {

// let found = label_mapping.find((ele)=>{return (ele.name === item.name)});
// if(found !== undefined){
// found.label.push({img_name : element.filename});
// }
// else{

// label_mapping.push({name : item["name"] ,label : {img_name : element.filename}});
// }
// });

// const user_id = req.body.user_id;
// Vision.updateOne({user_id : user_id},{
// $set: { 'image': image_mapping ,
// 'image_labels' : label_mapping
// }}).then((user)=>{
// console.log(user)
// });

// }).catch((err)=>{
// console.log(err,"err in line 32");
// });
// }

// handleRequest(req, res) {


// const user_id = req.body.user_id;
// console.log(user_id);

// try{
// Vision.find({user_id : user_id})
// .then(async(user)=>{

// let promise = [];
// req.files.forEach((element)=>{
// promise.push(this.process_image(user,element,req)
// .catch((err)=>{
// console.log(err,"error while inserting image/s");
// }));
// });

// // console.log("promise",promise);

// await Promise.all(promise);

// let found_label = user[0].image_labels;
// let found_filter_label = found_label.find((ele)=>{return (ele.name === "All")});
// return res.status(200).json(found_filter_label["label"]);

// })
// .catch((err)=>{console.log("err line 94",err)})
// }
// catch(err){
// return res.status(405).send("err in 97th line");
// }
// }
// };

// module.exports = {AddImage : AddImage};

const mongoose = require("mongoose");
const multer = require("multer");
const fs = require("fs");
const Vision = require("../../models/vision");
const {get_features} = require('../../predict');
const {get_features} = require('../../predictGeneral');
// const {get_nsfw_features} = require('../../predictNSFW');

const util = require('util');


Expand All @@ -23,13 +133,19 @@ class AddImage {
// console.log(user);

let features = await get_features(element.path);
let feature_list = features.slice(0,10);
let feature_list = features.slice(0,10);;
// let nsfw_features = await get_nsfw_features(element.path);
// console.log(nsfw_features);
// console.log(nsfw_features[0].value);
// console.log(nsfw_features[1].value);

await this.getStuff(element.path).then(async(data)=>{

let image_mapping = user[0].image;
// console.log(image_mapping);

image_mapping.push({img_name : element.filename,img_label : feature_list,img_data:data});
// image_mapping.push({img_name : element.filename,img_label : feature_list,img_data:data});
image_mapping.push({img_name : element.filename,img_label : feature_list});


//for labels
Expand Down Expand Up @@ -104,98 +220,3 @@ class AddImage {
};

module.exports = {AddImage : AddImage};



//for Single file


// const mongoose = require("mongoose");
// const multer = require("multer");
// const fs = require("fs");
// const Vision = require("../../models/vision");
// const {get_features} = require('../../predict');
// const util = require('util');


// class AddImage {


// handleRequest(req, res) {


// const user_id = req.body.user_id;
// // console.log(req.files);

// Vision.find({user_id : user_id})
// .then(async(user)=>{

// // for(let i=0;i<req.files.length;i++){
// let features = await get_features(req.file.path);
// let feature_list = features.slice(0,5);

// let FS_READFILE = util.promisify(fs.readFile);
// try{

// FS_READFILE(req.file.path)
// .then((data) => {

// const contentType = req.file.mimetype;
// let image_mapping = user[0].image;
// // console.log(image_mapping);

// image_mapping.push({img_name : req.file.filename,img_label : feature_list,img_data:data});


// //for labels
// let label_mapping = user[0].image_labels;
// if(label_mapping.length == 0){
// label_mapping.push({name : "All" ,label : {img_name : req.file.filename,img_buffer : data}});
// }
// else{
// let found = label_mapping.find((ele)=>{return (ele.name === 'All')});
// if(found !== undefined){
// found.label.push({img_name : req.file.filename,img_buffer : data});
// }
// }

// feature_list.forEach(function (item) {

// let found = label_mapping.find((ele)=>{return (ele.name === item.name)});
// if(found !== undefined){
// found.label.push({img_name : req.file.filename,img_buffer : data});
// }
// else{
// label_mapping.push({name : item["name"] ,label : {img_name : req.file.filename,img_buffer : data}});
// }
// });

// const user_id = req.body.user_id;
// Vision.updateOne({user_id : user_id},{
// $set: { 'image': image_mapping ,
// 'image_labels' : label_mapping
// }}).then((user)=>{
// console.log(user)
// });

// let found_label = user[0].image_labels;
// let found_filter_label = found_label.find((ele)=>{return (ele.name === "All")});
// return res.status(200).json(found_filter_label["label"]);

// })
// }
// catch(err){
// console.log(err);
// }
// // }

// // return res.status(200).send({"hello" : "all saved"});
// })
// .catch((error)=>{
// console.log(error);
// return res.status(400).json({"msg":error})
// });
// }
// };

// module.exports = {AddImage : AddImage};
69 changes: 69 additions & 0 deletions controller/user/forgotandupdate.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
const User = require("../../models/user");
const bcrypt = require("bcrypt");
const mongoose = require("mongoose");
const Vision = require("../../models/vision");
const { redis } = require("./util");



class ForgotAndUpdateDetail{

async getValue(key) {
return await redis.get(key);
}

async handleRequest(req, res){
// console.log(req.body);



const password = req.body.password;
const repassword = req.body.repassword;
const email = req.body.email;

if(password !== repassword){
return res.status(200).json({"msg":"Password is not same" , "verified" : false,"code" : "0"})
}

let otp;
try {
otp = await this.getValue(req.body.email);
// console.log(otp);
if(otp !== null){
if(otp === req.body.otp){

//Hashing the password
bcrypt.hash(password, 10, (error, hash) => {
if (error) res.status(500).json({ error });
else {


User.updateOne({_id : req.body.user_id},{
$set: {"password" : hash}
}).then((user)=>{
return res.status(200).json({
"msg": "Password is successfully updated!",
"verified" : true,
"code" : "1"
});
}).catch((err)=>{console.log(err)});
}
});
}
else{
// console.log("inc otp");
return res.status(200).json({"msg" : "Incorrect OTP","verified" : false,"code" : "0"});
}
}
else{
// console.log("otp exp");
return res.status(200).json({"msg" : "OTP expired","verified" : false,"code" : "0"});
}

} catch(error) {
console.log(error);
}
}
};

module.exports = {ForgotAndUpdateDetail : ForgotAndUpdateDetail};
28 changes: 28 additions & 0 deletions controller/user/forgotandverify.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const User = require("../../models/user");
const { generateOTP , initNodeMailer} = require("./util");

class ForgotAndVerifyDetail{

handleRequest(req, res){
console.log(req.body);
// const username = req.body.username,
const email = req.body.email;
// password = req.body.password;
User.findOne({ email }) //Checking if the email exist
.then((user) => {
console.log(user);
if (user === null)
{
return res.status(200).json({"msg" : "Email doesn't exist!","status" : false})}
else {
//for initialise NodeMailer
const transporter = initNodeMailer();
generateOTP(req,res,transporter);
return res.status(200).json({"user" : req.body,"msg" : "OTP has been sent to your Gmail","status" : true});
}
});
}
};


module.exports = {ForgotAndVerifyDetail : ForgotAndVerifyDetail};
Loading

0 comments on commit 9d10a65

Please sign in to comment.