user.endpoint.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /**
  2. * 用户端点。
  3. */
  4. "use strict";
  5. let ObjectUtil = require('../../util/object.util');
  6. let ControllerUtil = require('../../util/controller.util');
  7. let Users = require('../../models/user/users');
  8. let express = require('express');
  9. let router = express.Router();
  10. let http = require('http');
  11. let configFile = require('../../include/commons').CONFIG_FILE;
  12. let config = require('../../resources/config/' + configFile);
  13. let log = require("../../util/log.js");
  14. const APIv2 = require('../../include/endpoints').APIv2;
  15. /**
  16. * 登录。用户登录后,更新数据库中的在线状态。
  17. *
  18. * 请求URL:
  19. * /users/login?user_id=sand&token=0PFWlKmLBN9YzhCfFWVgYA&client_id=H6FYbDejks6VjMmW3uH7V6&platform=0
  20. *
  21. * 返回值:
  22. * 登录后的token.
  23. *
  24. * 参数说明:
  25. * user_id:用户ID
  26. * token:个推的token
  27. * client_id:个推的client id
  28. * platform:平台类型,0为iOS,1为Android
  29. */
  30. router.get(APIv2.Users.Login, function (req, res) {
  31. let userId = req.query.user_id;
  32. let token = req.query.token;
  33. let clientId = req.query.client_id;
  34. let platform = req.query.platform;
  35. if (userId == null) {
  36. throw {httpStatus: 406, message: 'Missing field: user_id.'};
  37. }
  38. if (token == null) {
  39. throw {httpStatus: 406, message: 'Missing field: token.'};
  40. }
  41. if (clientId == null) {
  42. throw {httpStatus: 406, message: 'Missing field: client_id.'};
  43. }
  44. if (platform == null) {
  45. throw {httpStatus: 406, message: 'Missing field: platform.'};
  46. }
  47. let users = new Users();
  48. ControllerUtil.regModelEventHandler(users, res);
  49. users.login(userId, platform, token, clientId);
  50. });
  51. /**
  52. * 退出。
  53. *
  54. * 请求URL:
  55. * /users/logout?user_id=sand
  56. *
  57. * 参数:
  58. * user_id:用户ID
  59. */
  60. router.get(APIv2.Users.Logout, function (req, res) {
  61. let userId = req.query.user_id;
  62. if (userId == null) {
  63. throw {httpStatus: 406, message: 'Logout Failed. Missing field: user_id.'};
  64. }
  65. let userStatus = new Users();
  66. ControllerUtil.regModelEventHandler(userStatus, res);
  67. userStatus.logout(userId);
  68. });
  69. /**
  70. * 更新客户端状态。
  71. *
  72. * 请求URL:
  73. * /users/:user_id/status
  74. *
  75. * POST参数格式:
  76. * {status: 1}, app状态,0在后台,1在前台
  77. */
  78. router.post(APIv2.Users.UserStatus, function (req, res) {
  79. let userId = req.param('user_id');
  80. let status = req.body;
  81. if (!ObjectUtil.isJsonObject(status)) {
  82. throw {httpStatus: 406, message: "Problems parsing json."};
  83. }
  84. if (userId === null || (status.status != 0 && status.status != 1)) {
  85. throw {httpStatus: 406, message: 'Validation Failed. Missing fields.'};
  86. }
  87. let userStatus = new Users();
  88. ControllerUtil.regModelEventHandler(userStatus, res);
  89. userStatus.updateStatus(userId, status.status);
  90. });
  91. module.exports = router;