parent
41bc9c221e
commit
451845142e
@ -1,61 +1,58 @@ |
||||
module.exports = new MessageManager() |
||||
const EventEmitter = require('events') |
||||
|
||||
function MessageManager (opts) { |
||||
module.exports = class MessageManager extends EventEmitter{ |
||||
constructor (opts) { |
||||
super() |
||||
this.messages = [] |
||||
} |
||||
|
||||
MessageManager.prototype.getMsgList = function () { |
||||
getMsgList () { |
||||
return this.messages |
||||
} |
||||
|
||||
MessageManager.prototype.unconfirmedMsgs = function () { |
||||
var messages = this.getMsgList() |
||||
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) { |
||||
_saveMsgList (msgList) { |
||||
this.messages = msgList |
||||
} |
||||
|
||||
MessageManager.prototype.addMsg = function (msg) { |
||||
var messages = this.getMsgList() |
||||
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) |
||||
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) { |
||||
confirmMsg (msgId) { |
||||
this._setMsgStatus(msgId, 'confirmed') |
||||
} |
||||
|
||||
MessageManager.prototype.rejectMsg = function (msgId) { |
||||
rejectMsg (msgId) { |
||||
this._setMsgStatus(msgId, 'rejected') |
||||
} |
||||
|
||||
MessageManager.prototype._setMsgStatus = function (msgId, status) { |
||||
var msg = this.getMsg(msgId) |
||||
_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 |
||||
} |
||||
}) |
||||
if (found) { |
||||
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 |
||||
} |
||||
this._saveMsgList(messages) |
||||
} |
||||
|
||||
} |
||||
|
Loading…
Reference in new issue