You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

109 lines
3.8 KiB

var express = require('express');
var app = express();
var jwt = require('jsonwebtoken');
var config = require('../config/config');
var crypto = require('crypto');
app.set('superSecret', config.secret);
/*******MODELS*********/
//var trainerModel = require('../models/trainerModel');
var userModel = require('../models/userModel');
var dietModel = require('../models/dietModel');
var routineModel = require('../models/routineModel');
/** GET '/admin/users/' **/
exports.getUsers = function (req, res) {
userModel.find()
.limit(Number(req.query.pageSize))
.skip(Number(req.query.pageSize) * Number(req.query.page))
.exec(function (err, users) {
if (err) return res.send(500, err.message);
res.status(200).jsonp(users);
});
};
/** GET '/admin/users/:userid' **/
exports.getUserById = function (req, res) {
userModel.findOne({_id: req.params.userid})
.lean()
.populate('followers', 'name avatar')
.populate('following', 'name avatar')
.exec(function (err, user) {
if (err) return res.send(500, err.message);
if (!user) {
res.json({success: false, message: 'User not found.'});
} else if (user) {
var nodes=[];
var edges=[];
var node={
title: user.name,
label: user.name,
image: user.avatar,
shape: "image",
id: user._id
};
nodes.push(node);
for(var i=0; i<user.followers.length; i++)
{
var node={
title: user.followers[i].name,
label: user.followers[i].name,
image: user.followers[i].avatar,
shape: "image",
id: user.followers[i]._id
};
nodes.push(node);
var edge={
from: user._id,
to: user.followers[i]._id,
arrows: {
from: user._id
},
color: {
color: "#36bc9b"
}
};
edges.push(edge);
}
for(var i=0; i<user.following.length; i++)
{
var indexJ=-1
for(var j=0; j<nodes.length; j++)
{
if(nodes[j].id.equals(user.following[i]._id))
{
indexJ=JSON.parse(JSON.stringify(j));
}
}
if(indexJ==-1)
{//el node no estava als followers, afegim el node
var node={
title: user.following[i].name,
label: user.following[i].name,
image: user.following[i].avatar,
shape: "image",
id: user.following[i]._id
};
nodes.push(node);
}
var edge={
from: user._id,
to: user.following[i]._id,
arrows: {
to: user.following[i]._id
},
color: {
color: "#4876b4"
}
};
edges.push(edge);
}
res.status(200).jsonp({
nodes: nodes,
edges: edges
});
}
});
};