Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var mongoose = require("mongoose");
  2. var express = require("express");
  3. var passport = require('passport');
  4.  
  5. var httpStatus = require("../lib/httpStatusCodes");
  6.  
  7. var DEFAULT_SKIP = 0;
  8. var DEFAULT_LIMIT = 20;
  9.  
  10. /**
  11.     GET /users/
  12. */
  13. function getAll(req, res) {
  14.     var User = mongoose.model('User');
  15.  
  16.     User.find({})
  17.         .skip(req.query.skip || DEFAULT_SKIP)
  18.         .limit(req.query.limit || DEFAULT_LIMIT)
  19.         .exec(function (err, users) {
  20.             if (err) {
  21.                 res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  22.                 return;
  23.             }
  24.  
  25.             var us = users.map(function (x) {
  26.                 return {
  27.                     _id: x._id,
  28.                     name: x.name,
  29.                     email: x.email
  30.                 };
  31.             });
  32.  
  33.             res.json({ 'users': us });
  34.         });
  35. }
  36. exports.getAll = getAll;
  37.  
  38.  
  39. /**
  40.     GET /user/:id
  41. */
  42. function getOne(req, res) {
  43.     var User = mongoose.model('User');
  44.  
  45.     User.findById(req.params.id, function (err, user) {
  46.         if (err) {
  47.             res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  48.             return;
  49.         }
  50.  
  51.         if (!user) {
  52.             res.json(httpStatus.NOT_FOUND, null);
  53.             return;
  54.         }
  55.  
  56.         var u = {
  57.             _id: user._id,
  58.             email: user.email
  59.         };
  60.  
  61.         res.json({ 'user': u });
  62.     });
  63. }
  64. exports.getOne = getOne;
  65.  
  66.  
  67. /**
  68.     POST /user/
  69. */
  70. function create(req, res) {
  71.     var User = mongoose.model('User');
  72.  
  73.     var doc = {
  74.         name: req.body.user.name,
  75.         email: req.body.user.email,
  76.         password: req.body.user.password,
  77.         channel: null,
  78.         follows: null
  79.     };
  80.  
  81.     User.create(doc, function (err, user) {
  82.         if (err) {
  83.             res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  84.             return;
  85.         }
  86.  
  87.         res.json(httpStatus.CREATED, { 'user': user });
  88.     });
  89. }
  90. exports.create = create;
  91.  
  92.  
  93. /**
  94.     PUT /user/:id
  95. */
  96. function update(req, res) {
  97.     var User = mongoose.model('User');
  98.  
  99.     User.findById(req.params.id, function (err, user) {
  100.         if (err) {
  101.             res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  102.             return;
  103.         }
  104.  
  105.         if (!user) {
  106.             res.json(httpStatus.NOT_FOUND, null);
  107.             return;
  108.         }
  109.  
  110.         user.name = req.body.user.name;
  111.         user.email = req.body.user.email;
  112.         if (req.body.user.password) {
  113.             user.password = req.body.user.password;
  114.         }
  115.         user.save(function (err) {
  116.             if (err) {
  117.                 res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  118.                 return;
  119.             }
  120.  
  121.             res.json(httpStatus.OK, null);
  122.         });
  123.     });
  124. }
  125. exports.update = update;
  126.  
  127.  
  128. /**
  129.     DELETE /user/:id
  130. */
  131. function remove(req, res) {
  132.     var User = mongoose.model('User');
  133.  
  134.     User.findById(req.params.id, function (err, user) {
  135.         if (err) {
  136.             res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  137.             return;
  138.         }
  139.  
  140.         if (!user) {
  141.             res.json(httpStatus.NOT_FOUND, null);
  142.             return;
  143.         }
  144.  
  145.         user.remove(function (err) {
  146.             if (err) {
  147.                 res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  148.                 return;
  149.             }
  150.  
  151.             res.json(httpStatus.OK, null);
  152.         });
  153.     });
  154. }
  155. exports.remove = remove;
  156.  
  157.  
  158. /**
  159.     POST /login/
  160. */
  161. function login(req, res, next) {
  162.     passport.authenticate('local', function (err, user) {
  163.         if (err) {
  164.             return res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
  165.         }
  166.  
  167.         if (!user) {
  168.             return res.json(httpStatus.UNAUTHORIZED, { 'user': null });
  169.         }
  170.  
  171.         req.login(user, function (err) {
  172.             if (err) {
  173.                 return next(err);
  174.             }
  175.  
  176.             return res.json({ 'user': req.user });
  177.         });
  178.     })(req, res, next);
  179. }
  180. exports.login = login;
  181.  
  182.  
  183. /**
  184.     POST /logout/
  185. */
  186. function logout(req, res) {
  187.     req.logout();
  188.     res.json(httpStatus.OK);
  189. }
  190. exports.logout = logout;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement