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

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