diff options
-rw-r--r-- | app/scripts/lib/message-manager.js | 93 |
1 files changed, 45 insertions, 48 deletions
diff --git a/app/scripts/lib/message-manager.js b/app/scripts/lib/message-manager.js index b609b820e..379f38917 100644 --- a/app/scripts/lib/message-manager.js +++ b/app/scripts/lib/message-manager.js @@ -1,61 +1,58 @@ -module.exports = new MessageManager() +const EventEmitter = require('events') -function MessageManager (opts) { - this.messages = [] -} +module.exports = class MessageManager extends EventEmitter{ + constructor (opts) { + super() + this.messages = [] + } -MessageManager.prototype.getMsgList = function () { - return this.messages -} + getMsgList () { + return this.messages + } -MessageManager.prototype.unconfirmedMsgs = function () { - var messages = this.getMsgList() - return messages.filter(msg => msg.status === 'unconfirmed') - .reduce((result, msg) => { result[msg.id] = msg; return result }, {}) -} + unconfirmedMsgs () { + let messages = this.getMsgList() + return messages.filter(msg => msg.status === 'unconfirmed') + .reduce((result, msg) => { result[msg.id] = msg; return result }, {}) + } -MessageManager.prototype._saveMsgList = function (msgList) { - this.messages = msgList -} + _saveMsgList (msgList) { + this.messages = msgList + } -MessageManager.prototype.addMsg = function (msg) { - var messages = this.getMsgList() - messages.push(msg) - this._saveMsgList(messages) -} + addMsg (msg) { + let messages = this.getMsgList() + messages.push(msg) + this._saveMsgList(messages) + } -MessageManager.prototype.getMsg = function (msgId) { - var messages = this.getMsgList() - var matching = messages.filter(msg => msg.id === msgId) - return matching.length > 0 ? matching[0] : null -} + getMsg (msgId) { + let messages = this.getMsgList() + let matching = messages.filter(msg => msg.id === msgId) + return matching.length > 0 ? matching[0] : null + } -MessageManager.prototype.confirmMsg = function (msgId) { - this._setMsgStatus(msgId, 'confirmed') -} + confirmMsg (msgId) { + this._setMsgStatus(msgId, 'confirmed') + } -MessageManager.prototype.rejectMsg = function (msgId) { - this._setMsgStatus(msgId, 'rejected') -} + rejectMsg (msgId) { + this._setMsgStatus(msgId, 'rejected') + } -MessageManager.prototype._setMsgStatus = function (msgId, status) { - var msg = this.getMsg(msgId) - if (msg) msg.status = status - this.updateMsg(msg) -} + _setMsgStatus (msgId, status) { + let msg = this.getMsg(msgId) + if (msg) msg.status = status + this.updateMsg(msg) + } -MessageManager.prototype.updateMsg = function (msg) { - var messages = this.getMsgList() - var found, index - messages.forEach((otherMsg, i) => { - if (otherMsg.id === msg.id) { - found = true - index = i + updateMsg (msg) { + let messages = this.getMsgList() + let index = messages.findIndex((message) => message.id === msg.id) + if (index !== -1) { + this.emit('update', msg.id) + messages[index] = msg } - }) - if (found) { - messages[index] = msg + this._saveMsgList(messages) } - this._saveMsgList(messages) } - |