Advertisement
Guest User

OTP USER REG

a guest
Feb 9th, 2016
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var bodyParser = require('body-parser');
  3. var multer = require('multer');
  4. var mongojs = require('mongojs');
  5. var crypto = require('crypto');
  6. var request = require('request');
  7. var connectionstring = "mongodb://127.0.0.1:27017/trendieapps";
  8. var db = mongojs(connectionstring);
  9. db.on('error', function (err) {
  10.     console.log('database error', err)
  11. });
  12.  
  13. db.on('connect', function () {
  14.     console.log('database connected')
  15. });
  16. var campaigns = db.collection('campaigns');
  17. var users = db.collection('users');
  18. var mimes = {
  19.     'image/jpeg': 'jpg',
  20.     'image/png': 'png',
  21.     'image/gif': 'gif'
  22. };
  23. var storage = multer.diskStorage({
  24.     destination: function (req, file, callback) {
  25.         callback(null, './uploads');
  26.     },
  27.     filename: function (req, file, callback) {
  28.         callback(null, file.fieldname + '-' + Date.now() + '.' + mimes[file.mimetype]);
  29.     }
  30. });
  31. var upload = multer({
  32.     storage: storage
  33. });
  34.  
  35. var app = express()
  36. app.use(bodyParser.json());
  37. app.use(express.static('uploads'));
  38. app.use(bodyParser.urlencoded({
  39.     extended: true
  40. }));
  41. app.post('/campaign/create', upload.single('file'), function (req, res, next) {
  42.     var params = req.body;
  43.     var cname = params.cname;
  44.     var companyid = params.cid;
  45.     var offer = params.offerdet;
  46.     var details = params.detail;
  47.     var filename = req.file.filename;
  48.     var campaign = {
  49.         companyname: req.body.cname,
  50.         companyid: req.body.cid,
  51.         offerpercent: req.body.offerdet,
  52.         details: req.body.detail,
  53.         url: filename
  54.     };
  55.     campaigns.save(campaign, function (err, doc) {
  56.         if (!err) {
  57.             res.json({
  58.                 stat: '1',
  59.                 url: '/' + filename,
  60.                 id: doc._id
  61.             });
  62.             return next();
  63.         } else {
  64.             res.json({
  65.                 stat: '0'
  66.             });
  67.             return next();
  68.         }
  69.     });
  70. });
  71. app.get('/campaigns', function (req, res, next) {
  72.     campaigns.find(function (err, docs) {
  73.         if (err) {
  74.             res.json({
  75.                 stat: '0'
  76.             });
  77.             return next()
  78.         } else {
  79.             res.json(docs);
  80.             return next()
  81.         }
  82.     })
  83. });
  84.  
  85. app.get('/campaign/get/:id', function (req, res, next) {
  86.     console.log(req.params.id);
  87.     campaigns.findOne({
  88.         _id: mongojs.ObjectId(req.params.id)
  89.     }, function (err, doc) {
  90.         if (err && !doc) {
  91.             res.json({
  92.                 stat: '0'
  93.             });
  94.             return next();
  95.         } else {
  96.             res.json(doc);
  97.             return next();
  98.         }
  99.     });
  100. });
  101. app.post('/user/create', function (req, res, next) {
  102.     var username = req.body.username;
  103.     var password = req.body.password;
  104.     var phone = req.body.phone;
  105.     var buf = crypto.randomBytes(2);
  106.     var otp = buf.toString('hex').toUpperCase();
  107.     var user = {
  108.         username: username,
  109.         password: password,
  110.         phone: phone,
  111.         otp: otp,
  112.         verified: false,
  113.         _id: phone
  114.     };
  115.     users.save(user, function (err, doc) {
  116.         if (!err) {
  117.             request('http://login.smsgatewayhub.com/api/mt/SendSMS?APIKey=f2ebe631-67a2-41a2-a94c-043d1ad651bf&senderid=WEBSMS&channel=2&DCS=0&flashsms=0&number=91' + phone + '&text=Dear ' + username + ', Your OTP for Trendieapp is ' + otp + '.&route=1');
  118.             res.json({
  119.                 stat: 1,
  120.                 id: doc._id
  121.             });
  122.             next();
  123.         } else {
  124.             res.json({
  125.                 stat: 0,
  126.                 error: err.errmsg
  127.             });
  128.             next();
  129.         }
  130.     });
  131. });
  132. app.get('/user/verify/:phone/:otp', function (req, res, next) {
  133.     var phone = req.params.phone;
  134.     var otp = req.params.otp;
  135.     users.findOne({
  136.         _id: phone,
  137.         otp: otp
  138.     }, function (err, doc) {
  139.         if (!err && doc) {
  140.             doc.verified = true;
  141.             users.save(doc);
  142.             res.json({
  143.                 verified: 1,
  144.                 message: 'Account Verified'
  145.             });
  146.         } else {
  147.             res.json({
  148.                 verified: 0,
  149.                 message: 'Account verification error',
  150.                 error: err
  151.             });
  152.         }
  153.         next();
  154.     });
  155. });
  156. app.get('/user/login/:phone/:password', function (req, res, next) {
  157.     var phone = req.params.phone;
  158.     var password = req.params.password;
  159.     users.findOne({
  160.         _id: phone,
  161.         password: password
  162.     }, function (err, doc) {
  163.         if (!err && doc) {
  164.             if (doc.verified == true) {
  165.                 res.json({
  166.                     stat: 1,
  167.                     id: doc._id,
  168.                     username: doc.username
  169.                 });
  170.             } else {
  171.                 res.json({
  172.                     stat: 2,
  173.                     id: doc._id,
  174.                     username: doc.username
  175.                 });
  176.             }
  177.         } else {
  178.             res.json({
  179.                 stat: 0,
  180.                 error: err.errmsg
  181.             });
  182.         }
  183.         next();
  184.     });
  185. });
  186. app.listen(4000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement