aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/message-manager.js
diff options
context:
space:
mode:
authorFrankie <frankie.diamond@gmail.com>2017-01-28 06:16:35 +0800
committerFrankie <frankie.diamond@gmail.com>2017-01-28 06:16:35 +0800
commit451845142ed40d1e10bd993cedca1b28e59baba1 (patch)
tree72977e767cae5819016dc1a4e0a67d3274928e87 /app/scripts/lib/message-manager.js
parent41bc9c221eb888ba1afe93b511698c21b0c8cf01 (diff)
downloadtangerine-wallet-browser-451845142ed40d1e10bd993cedca1b28e59baba1.tar
tangerine-wallet-browser-451845142ed40d1e10bd993cedca1b28e59baba1.tar.gz
tangerine-wallet-browser-451845142ed40d1e10bd993cedca1b28e59baba1.tar.bz2
tangerine-wallet-browser-451845142ed40d1e10bd993cedca1b28e59baba1.tar.lz
tangerine-wallet-browser-451845142ed40d1e10bd993cedca1b28e59baba1.tar.xz
tangerine-wallet-browser-451845142ed40d1e10bd993cedca1b28e59baba1.tar.zst
tangerine-wallet-browser-451845142ed40d1e10bd993cedca1b28e59baba1.zip
Rewrite message controller to fit controller pattern
Diffstat (limited to 'app/scripts/lib/message-manager.js')
-rw-r--r--app/scripts/lib/message-manager.js93
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)
}
-