groups.endpoint.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * Created by Sand on 2016/11/14.
  3. */
  4. "use strict";
  5. var express = require("express");
  6. var router = express.Router();
  7. var APIv1 = require('../include/endpoints').APIv1;
  8. var groupRepo = require('../repository/group.repo.js');
  9. /**
  10. * 获取成员头像。每个组最多返回5个成员的头像。
  11. *
  12. * 请求URL:
  13. * /groups/member/avatars?groups=433,10,63
  14. */
  15. router.get(APIv1.Groups.MembersAvatar, function (req, res) {
  16. var groups = req.query.groups;
  17. if (!groups) {
  18. throw {httpStatus: 406, message: "Missing field: groups"};
  19. }
  20. var tokens = groups.split(",");
  21. groups = "'" + tokens.join("', '") + "'";
  22. var avatars = [];
  23. groupRepo.getMembersAvatar(groups, function (err, members) {
  24. if(err){
  25. console.log("Get group member's avatar list failed: ", err);
  26. res.status(500).send({message: "Get group member's avatar list failed."});
  27. return;
  28. }
  29. var lastGroup;
  30. var lastGroupCode = '';
  31. for (var i = 0; i < members.length; ++i) {
  32. var member = members[i];
  33. var groupCode = member.g_code;
  34. if (lastGroupCode !== groupCode) {
  35. lastGroupCode = groupCode;
  36. lastGroup = {groupCode: groupCode, avatars: []};
  37. if(lastGroupCode !== ''){
  38. avatars.push(lastGroup);
  39. }
  40. }
  41. lastGroup.avatars.push({
  42. code: member.code,
  43. name: member.name,
  44. avatar: member.photo === null ? "" : member.photo,
  45. role: member.type
  46. });
  47. }
  48. res.status(200).send(avatars);
  49. });
  50. });
  51. module.exports = router;