Guest User

Untitled

a guest
May 7th, 2019
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.55 KB | None | 0 0
  1. var express = require('express');
  2. var router = express.Router();
  3. var exphbs = require('express-handlebars');
  4. var passport = require('passport');
  5. var LocalStrategy = require('passport-local').Strategy;
  6. var cand = require('../models/cand');
  7. // var jobs = require('jobs');
  8. var mongoose = require('mongoose');
  9. var upload = require('express-fileupload');
  10.  
  11.  
  12. // Register
  13. router.get('/candidate-register' , function(req,res){
  14. res.render('candidate-register');
  15.  
  16. });
  17.  
  18. // login
  19. router.get('/candidate-login' , function(req,res){
  20. res.render('candidate-login');
  21.  
  22. });
  23.  
  24. //add jobs
  25. // router.get('/addjob' , function(req,res){
  26. // res.render('addjob');
  27. // });
  28.  
  29.  
  30. // Register
  31. router.post('/candidate-register' , function(req,res){
  32.  
  33. var fname = req.body.fname;
  34. var lname = req.body.lname;
  35. var email = req.body.email;
  36. var phnno = req.body.phnno;
  37. var password = req.body.password;
  38. var password2 = req.body.password2;
  39. var username = req.body.username;
  40.  
  41. if(req.files){
  42. console.log(req.files);
  43. var file = req.files.filename;
  44. filename= file.name;
  45. file.mv("./uploads/" + filename , function(err){
  46. if(err){
  47. req.flash('error' , " error while uploading resume");
  48.  
  49. if( file.mimetype != 'application/pdf') { req.flash('error', "file must be a pdf"); }
  50.  
  51. }
  52.  
  53. })
  54.  
  55. }
  56.  
  57.  
  58. //validations
  59. req.checkBody('fname' , 'first name is required').notEmpty();
  60. req.checkBody('lname' , 'last name is required').notEmpty();
  61. req.checkBody('email' , 'email is not valid').isEmail();
  62. req.checkBody('phnno' , 'phnno is required').isMobilePhone();
  63. req.checkBody('password' , 'password is required').notEmpty();
  64. req.checkBody('password2' , 'passwords do not match').equals(req.body.password);
  65. req.checkBody('username' , 'username name is required').notEmpty();
  66.  
  67.  
  68. var errors = req.validationErrors();
  69. if(errors && errors.length > 0)
  70. {
  71. return res.render('company-register' ,{
  72. errors:errors
  73. });
  74. // console.log('yes...');
  75. }
  76. else{
  77. var newcand = new cand({
  78. _id: new mongoose.Types.ObjectId(),
  79. fname: fname,
  80. lname: lname,
  81. email: email,
  82. phnno: phnno,
  83. password: password,
  84. username: username
  85. });
  86.  
  87.  
  88.  
  89. cand.createUser(newcand, function(err, cand){
  90. if(err && err.code == 11000 || err && err.name == 'MongoError')
  91. {
  92. // console.log(err, err.name, err.message, err.code);
  93. // res.render('company-register' ,{
  94. // errors:errors
  95. // });
  96. console.log("GOt Error");
  97. req.flash("error", "email already registered");
  98. res.redirect('/users/company-register');
  99. return ;
  100. }
  101. console.log(cand);
  102. req.flash('success_msg' , 'you are registered and can now login');
  103. res.redirect('/users/company-login');
  104. });
  105.  
  106. }
  107.  
  108.  
  109. // console.log(fname);
  110. });
  111.  
  112.  
  113.  
  114. // router.post('/addjob' , function(req,res){
  115.  
  116. // var company = req.body.company;
  117. // var job = req.body.job;
  118. // var details = req.body.details;
  119.  
  120.  
  121. //validations
  122. // req.checkBody('company' , 'company name is required').notEmpty();
  123. // req.checkBody('job' , 'post name is required').notEmpty();
  124. // req.checkBody('details' , 'details are required').notEmpty();
  125.  
  126.  
  127. // var errors = req.validationErrors();
  128. // if(errors)
  129. // {
  130. // res.render('addjob' ,{
  131. // errors:errors
  132. // });
  133. // // console.log('yes...');
  134. // }
  135. // else{
  136. // var newJob = new Jobs({
  137. // _id: new mongoose.Types.ObjectId(),
  138. // company:company,
  139. // job:job,
  140. // details:details
  141. // });
  142. // newJob.save(function(err){
  143. // if(err) throw err;
  144. // console.log(newJob);
  145. // });
  146. // req.flash('success_msg' , 'job added!! ');
  147. // res.redirect('/users/addjob');
  148. // }
  149.  
  150.  
  151. // newJob.save(function(err) {
  152. // if (err) throw err;
  153. // console.log('Jobs');
  154.  
  155.  
  156. // });
  157. // router.get('/' , function(req,res){
  158. // Jobs.find({})
  159. // .exec(function(err , job){
  160. // if (err) throw err;
  161. // else{
  162. // res.json(job);
  163. // }
  164. // })
  165.  
  166. // });
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174. // var applybtn = document.querySelector('#applybtn');
  175. // applybtn.addEventListener('click', function(){
  176.  
  177. // router.post( function(req,res){
  178. // var company = apple;
  179. // var newUser = new User({
  180. // _id: new mongoose.Types.ObjectId(),
  181. // company:company
  182. // });
  183.  
  184. // });
  185. // //job application
  186. // router.post( function(req,res){
  187. // var company = apple;
  188.  
  189.  
  190. // });
  191.  
  192.  
  193.  
  194. //declare this strategy as local-cand instead of local
  195. passport.use('local-cand', new LocalStrategy(
  196. function(username, password, done) {
  197. cand.getUserByEmail(username , function(err , usr){
  198. if(err) throw err;
  199. if(!usr){
  200. return done(null , false , {message: 'Unknown User'});
  201. }
  202. cand.comparePassword(password , usr.password , function(err , isMatch){
  203. if(err) throw err;
  204. if(isMatch){
  205. return done(null , usr);
  206. }
  207. else{
  208. return done(null ,false , {message: 'INVALID PASSWORD!!'});
  209. }
  210. });
  211. });
  212. }));
  213.  
  214.  
  215. // passport.serializeUser(function(cand, done) {
  216. // done(null, cand.id);
  217. // });
  218.  
  219. // passport.deserializeUser(function(id, done) {
  220. // User.getUserById(id, function(err, cand) {
  221. // done(err, cand);
  222. // });
  223. // });
  224.  
  225. router.post('/candidate-login',
  226. passport.authenticate('local-cand', {successRedirect:'/', failureRedirect:'/users/candidate-login', failureFlash: true}),
  227.  
  228. function(req, res) {
  229. // If this function gets called, authentication was successful.
  230. // `req.user` contains the authenticated user.
  231. req.session.userType = 'cand';
  232. res.redirect('/');
  233. });
  234.  
  235. router.get('/logout' , function(req , res){
  236. req.logout();
  237. req.flash('success_msg' , 'you are logged out');
  238.  
  239. res.redirect('/users/candidate-login');
  240. });
  241.  
  242. module.exports = router
Add Comment
Please, Sign In to add comment