Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mongoose = require("mongoose");
- var express = require("express");
- var passport = require('passport');
- var httpStatus = require("../lib/httpStatusCodes");
- var DEFAULT_SKIP = 0;
- var DEFAULT_LIMIT = 20;
- /**
- GET /users/
- */
- function getAll(req, res) {
- var User = mongoose.model('User');
- User.find({})
- .skip(req.query.skip || DEFAULT_SKIP)
- .limit(req.query.limit || DEFAULT_LIMIT)
- .exec(function (err, users) {
- if (err) {
- res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- return;
- }
- var us = users.map(function (x) {
- return {
- _id: x._id,
- name: x.name,
- email: x.email
- };
- });
- res.json({ 'users': us });
- });
- }
- exports.getAll = getAll;
- /**
- GET /user/:id
- */
- function getOne(req, res) {
- var User = mongoose.model('User');
- User.findById(req.params.id, function (err, user) {
- if (err) {
- res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- return;
- }
- if (!user) {
- res.json(httpStatus.NOT_FOUND, null);
- return;
- }
- var u = {
- _id: user._id,
- email: user.email
- };
- res.json({ 'user': u });
- });
- }
- exports.getOne = getOne;
- /**
- POST /user/
- */
- function create(req, res) {
- var User = mongoose.model('User');
- var doc = {
- name: req.body.user.name,
- email: req.body.user.email,
- password: req.body.user.password,
- channel: null,
- follows: null
- };
- User.create(doc, function (err, user) {
- if (err) {
- res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- return;
- }
- res.json(httpStatus.CREATED, { 'user': user });
- });
- }
- exports.create = create;
- /**
- PUT /user/:id
- */
- function update(req, res) {
- var User = mongoose.model('User');
- User.findById(req.params.id, function (err, user) {
- if (err) {
- res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- return;
- }
- if (!user) {
- res.json(httpStatus.NOT_FOUND, null);
- return;
- }
- user.name = req.body.user.name;
- user.email = req.body.user.email;
- if (req.body.user.password) {
- user.password = req.body.user.password;
- }
- user.save(function (err) {
- if (err) {
- res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- return;
- }
- res.json(httpStatus.OK, null);
- });
- });
- }
- exports.update = update;
- /**
- DELETE /user/:id
- */
- function remove(req, res) {
- var User = mongoose.model('User');
- User.findById(req.params.id, function (err, user) {
- if (err) {
- res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- return;
- }
- if (!user) {
- res.json(httpStatus.NOT_FOUND, null);
- return;
- }
- user.remove(function (err) {
- if (err) {
- res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- return;
- }
- res.json(httpStatus.OK, null);
- });
- });
- }
- exports.remove = remove;
- /**
- POST /login/
- */
- function login(req, res, next) {
- passport.authenticate('local', function (err, user) {
- if (err) {
- return res.json(httpStatus.INTERNAL_SERVER_ERROR, { 'error': err });
- }
- if (!user) {
- return res.json(httpStatus.UNAUTHORIZED, { 'user': null });
- }
- req.login(user, function (err) {
- if (err) {
- return next(err);
- }
- return res.json({ 'user': req.user });
- });
- })(req, res, next);
- }
- exports.login = login;
- /**
- POST /logout/
- */
- function logout(req, res) {
- req.logout();
- res.json(httpStatus.OK);
- }
- exports.logout = logout;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement