12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /**
- * 用户状态模型。此处状态是指用户移动应用App状态,如用户是否已登录,App是否已打开。
- *
- * 用户状态区分患者与医生。**当前**仅是与医生相关,若需要增加患者相关内容,
- * 需要增加在用户判断。
- *
- * author: Sand
- * since: 2016.11.20
- */
- "use strict";
- let BaseModel = require('./base.model');
- let doctorRepo = require('../repository/doctor.repo');
- let modelUtil = require("../util/modelUtil.js");
- let Token = require('./auth/token');
- class UserStatus extends BaseModel {
- constructor() {
- super();
- }
- /**
- * 登录。
- */
- login(userId, token, clientId, platform) {
- let self = this;
- doctorRepo.deleteToken(token, function (err, result) {
- if (err) {
- modelUtil.emitDbError(self.eventEmitter, 'Error occurs when user login and delete token', err);
- } else {
- doctorRepo.login(userId, token, clientId, platform,
- function (err, result) {
- if (err) {
- modelUtil.emitDbError(self.eventEmitter, 'Error occurs when user login and delete token', err);
- }
- let token = new Token(userId, clientId, platform);
- modelUtil.emitData(self.eventEmitter, {token: token.value});
- });
- }
- });
- }
- /**
- * 退出。
- */
- logout(userId) {
- let self = this;
- doctorRepo.logout(userId,
- function (err, result) {
- if (err) {
- modelUtil.emitDbError(self.eventEmitter, 'Logout failed', err);
- return;
- }
- modelUtil.emitData(self.eventEmitter, {});
- });
- }
- /**
- * 更新用户状态。
- */
- updateStatus(userId, status) {
- let self = this;
- doctorRepo.updateStatus(userId, status,
- function (err, result) {
- if (err) {
- modelUtil.emitDbError(self.eventEmitter, 'Update user status failed', err);
- return;
- }
- modelUtil.emitData(self.eventEmitter, {});
- });
- }
- }
- module.exports = UserStatus;
|