user.endpoint.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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.post(APIv2.Users.Login, function (req, res) {
  31. let appStatus = req.body;
  32. let testing = ObjectUtil.fieldsCheck(appStatus, "user_id", "token", "client_id", "platform");
  33. if (!testing.pass) {
  34. throw {httpStatus: 406, message: testing.message}
  35. }
  36. let users = new Users();
  37. ControllerUtil.regModelEventHandler(users, res);
  38. users.login(appStatus.user_id, appStatus.platform, appStatus.token, appStatus.client_id);
  39. });
  40. /**
  41. * 更新客户端状态。
  42. *
  43. * 请求URL:
  44. * /users/:user_id/status
  45. *
  46. * POST参数格式:
  47. * {status: 1}, app状态,0在后台,1在前台
  48. */
  49. router.put(APIv2.Users.UserStatus, function (req, res) {
  50. let userId = req.params.user_id;
  51. let status = req.body;
  52. if (!ObjectUtil.isJsonObject(status)) {
  53. throw {httpStatus: 406, message: "Problems parsing json."};
  54. }
  55. if (userId === null) {
  56. throw {httpStatus: 406, message: 'Validation Failed. Missing field(s): user_id.'};
  57. }
  58. let users = new Users();
  59. ControllerUtil.regModelEventHandler(users, res);
  60. users.updateAppStatus(userId, status.app_in_bg);
  61. });
  62. /**
  63. * 退出。
  64. *
  65. * 请求URL:
  66. * /users/logout?user_id=sand
  67. *
  68. * 参数:
  69. * user_id:用户ID
  70. */
  71. router.delete(APIv2.Users.Logout, function (req, res) {
  72. let userId = req.query.user_id;
  73. if (userId == null) {
  74. throw {httpStatus: 406, message: 'Logout Failed. Missing field: user_id.'};
  75. }
  76. let userStatus = new Users();
  77. ControllerUtil.regModelEventHandler(userStatus, res);
  78. userStatus.logout(userId);
  79. });
  80. module.exports = router;