arnaucube
arnaucube/socketioMEANseedPublic Self-hosted repository
socketioMEANseed/server/controllers/adminController.js
server/controllers/adminController.jsRaw
  1var express = require('express');
  2var app = express();
  3var jwt = require('jsonwebtoken');
  4var config = require('../config/config');
  5var crypto = require('crypto');
  6
  7app.set('superSecret', config.secret);
  8
  9/*******MODELS*********/
 10//var trainerModel = require('../models/trainerModel');
 11var userModel = require('../models/userModel');
 12var dietModel = require('../models/dietModel');
 13var routineModel = require('../models/routineModel');
 14
 15/** GET '/admin/users/' **/
 16exports.getUsers = function (req, res) {
 17    userModel.find()
 18        .limit(Number(req.query.pageSize))
 19        .skip(Number(req.query.pageSize) * Number(req.query.page))
 20        .exec(function (err, users) {
 21            if (err) return res.send(500, err.message);
 22            res.status(200).jsonp(users);
 23        });
 24};
 25/** GET '/admin/users/:userid' **/
 26exports.getUserById = function (req, res) {
 27    userModel.findOne({_id: req.params.userid})
 28        .lean()
 29        .populate('followers', 'name avatar')
 30        .populate('following', 'name avatar')
 31        .exec(function (err, user) {
 32            if (err) return res.send(500, err.message);
 33            if (!user) {
 34                res.json({success: false, message: 'User not found.'});
 35            } else if (user) {
 36                var nodes=[];
 37                var edges=[];
 38                var node={
 39                    title: user.name,
 40                    label: user.name,
 41                    image: user.avatar,
 42                    shape: "image",
 43                    id: user._id
 44                };
 45                nodes.push(node);
 46                for(var i=0; i<user.followers.length; i++)
 47                {
 48                    var node={
 49                        title: user.followers[i].name,
 50                        label: user.followers[i].name,
 51                        image: user.followers[i].avatar,
 52                        shape: "image",
 53                        id: user.followers[i]._id
 54                    };
 55                    nodes.push(node);
 56                    var edge={
 57                        from: user._id,
 58                        to: user.followers[i]._id,
 59                        arrows: {
 60                            from: user._id
 61                        },
 62                        color: {
 63                            color: "#36bc9b"
 64                        }
 65                    };
 66                    edges.push(edge);
 67                }
 68
 69                for(var i=0; i<user.following.length; i++)
 70                {
 71                    var indexJ=-1
 72                    for(var j=0; j<nodes.length; j++)
 73                    {
 74                        if(nodes[j].id.equals(user.following[i]._id))
 75                        {
 76                            indexJ=JSON.parse(JSON.stringify(j));
 77                        }
 78                    }
 79                    if(indexJ==-1)
 80                    {//el node no estava als followers, afegim el node
 81                        var node={
 82                            title: user.following[i].name,
 83                            label: user.following[i].name,
 84                            image: user.following[i].avatar,
 85                            shape: "image",
 86                            id: user.following[i]._id
 87                        };
 88                        nodes.push(node);
 89                    }
 90                    var edge={
 91                        from: user._id,
 92                        to: user.following[i]._id,
 93                        arrows: {
 94                            to: user.following[i]._id
 95                        },
 96                        color: {
 97                            color: "#4876b4"
 98                        }
 99                    };
100                    edges.push(edge);
101                }
102
103                res.status(200).jsonp({
104                    nodes: nodes,
105                    edges: edges
106                });
107            }
108        });
109};