From d32c3e53d90ba646bc05e0f3fe4aa591345ff962 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Wed, 8 Sep 2021 16:27:18 -0400 Subject: [PATCH] refactor: signal handling --- src/app/chat/core.nim | 1 - src/app/chat/signal_handling.nim | 3 +- src/app/chat/view.nim | 1 - src/app/chat/views/communities.nim | 1 - src/app/login/core.nim | 3 +- src/app/login/view.nim | 1 - src/app/node/core.nim | 3 +- src/app/onboarding/core.nim | 3 +- src/app/onboarding/view.nim | 1 - src/app/profile/core.nim | 3 +- src/app/wallet/v1/core.nim | 3 +- src/app/wallet/v1/views/accounts.nim | 3 +- src/app/wallet/v2/core.nim | 3 +- src/app/wallet/v2/views/accounts.nim | 3 +- src/app_service/signals/signal_controller.nim | 33 ++++--------------- vendor/nim-status-lib | 2 +- 16 files changed, 17 insertions(+), 50 deletions(-) diff --git a/src/app/chat/core.nim b/src/app/chat/core.nim index 923bd8c792..311b65acd9 100644 --- a/src/app/chat/core.nim +++ b/src/app/chat/core.nim @@ -4,7 +4,6 @@ import status/messages as messages_model import status/[chat, contacts, status, wallet, stickers, settings] import status/types/[message, transaction, os_notification, setting] import ../../app_service/[main] -import status/signals/[base] import view, views/channels_list, views/message_list, views/reactions, views/stickers as stickers_view import eventemitter diff --git a/src/app/chat/signal_handling.nim b/src/app/chat/signal_handling.nim index 5b93561be7..aead7b58a2 100644 --- a/src/app/chat/signal_handling.nim +++ b/src/app/chat/signal_handling.nim @@ -1,7 +1,6 @@ import ../../app_service/tasks/marathon/mailserver/worker, - status/signals/messages as signals_messages, - status/signals/[community, discovery_summary, envelope, expired] + status/signals proc handleSignals(self: ChatController) = self.status.events.on(SignalType.Message.event) do(e:Args): diff --git a/src/app/chat/view.nim b/src/app/chat/view.nim index 07916c7398..f587d6957d 100644 --- a/src/app/chat/view.nim +++ b/src/app/chat/view.nim @@ -13,7 +13,6 @@ import status/types/[activity_center_notification, os_notification, rpc_response import ../../app_service/[main] import ../../app_service/tasks/[qt, threadpool] import ../../app_service/tasks/marathon/mailserver/worker -import status/signals/[base] import status/notifications/[os_notifications] import ../utils/image_utils import web3/[conversions, ethtypes] diff --git a/src/app/chat/views/communities.nim b/src/app/chat/views/communities.nim index cfe70a33fd..2fb481bf93 100644 --- a/src/app/chat/views/communities.nim +++ b/src/app/chat/views/communities.nim @@ -6,7 +6,6 @@ import ./community_item import ./community_membership_request_list import ../../utils/image_utils import status/types/[activity_center_notification, status_update, rpc_response] -import status/signals/[base] logScope: topics = "communities-view" diff --git a/src/app/login/core.nim b/src/app/login/core.nim index 9b836eb0b3..47034d9212 100644 --- a/src/app/login/core.nim +++ b/src/app/login/core.nim @@ -1,7 +1,6 @@ import NimQml, chronicles, options, std/wrapnils -import status/status +import status/[signals, status] import status/types/[account, rpc_response] -import status/signals/[base] import view import eventemitter diff --git a/src/app/login/view.nim b/src/app/login/view.nim index 0bba572976..374c2ceed8 100644 --- a/src/app/login/view.nim +++ b/src/app/login/view.nim @@ -1,7 +1,6 @@ import NimQml, Tables, json, nimcrypto, strformat, json_serialization, chronicles import status/accounts as AccountModel import status/types/[account, rpc_response] -import status/signals/[base] import ../onboarding/views/account_info import status/status diff --git a/src/app/node/core.nim b/src/app/node/core.nim index 77a13b78ce..0c55aba75c 100644 --- a/src/app/node/core.nim +++ b/src/app/node/core.nim @@ -1,7 +1,6 @@ import NimQml, chronicles -import status/[status, node, network] +import status/[signals, status, node, network] import ../../app_service/[main] -import status/signals/[base, wallet, discovery_summary, stats] import eventemitter import view diff --git a/src/app/onboarding/core.nim b/src/app/onboarding/core.nim index 8e84556327..018756ccad 100644 --- a/src/app/onboarding/core.nim +++ b/src/app/onboarding/core.nim @@ -1,8 +1,7 @@ import NimQml, chronicles, std/wrapnils import status/accounts as AccountModel -import status/status +import status/[signals, status] import status/types/[account] -import status/signals/[base] import eventemitter import view diff --git a/src/app/onboarding/view.nim b/src/app/onboarding/view.nim index 81c3ddbdb6..af03ff6624 100644 --- a/src/app/onboarding/view.nim +++ b/src/app/onboarding/view.nim @@ -2,7 +2,6 @@ import NimQml, Tables, json, nimcrypto, strformat, json_serialization, strutils import status/accounts as AccountModel import status/[status, wallet] import status/types/[account, rpc_response] -import status/signals/[base] import views/account_info type diff --git a/src/app/profile/core.nim b/src/app/profile/core.nim index b93372e499..d28060266f 100644 --- a/src/app/profile/core.nim +++ b/src/app/profile/core.nim @@ -1,7 +1,7 @@ import NimQml, json, strutils, sugar, sequtils, tables import json_serialization import status/profile/[profile, mailserver] -import status/[status, settings] +import status/[status, signals, settings] import status/contacts as status_contacts import status/chat as status_chat import status/devices as status_devices @@ -9,7 +9,6 @@ import status/chat/chat import status/wallet import status/types/[account, transaction, setting] import ../../app_service/[main] -import status/signals/[base, messages] import ../../app_service/tasks/marathon/mailserver/events import eventemitter import view diff --git a/src/app/wallet/v1/core.nim b/src/app/wallet/v1/core.nim index 07f2cc7575..51b8ca7478 100644 --- a/src/app/wallet/v1/core.nim +++ b/src/app/wallet/v1/core.nim @@ -6,9 +6,8 @@ import views/[asset_list, account_list, account_item] import status/[status, wallet, settings] import status/wallet/account as WalletTypes import status/types/[transaction, setting] +import status/signals import ../../../app_service/[main] -import status/signals/[base] -import status/signals/wallet as wallet_signal import eventemitter logScope: diff --git a/src/app/wallet/v1/views/accounts.nim b/src/app/wallet/v1/views/accounts.nim index 942d006fc4..cd45015c0c 100644 --- a/src/app/wallet/v1/views/accounts.nim +++ b/src/app/wallet/v1/views/accounts.nim @@ -3,8 +3,7 @@ import NimQml, json, sequtils, chronicles, strutils, strformat, json import status/[status, settings], status/wallet as status_wallet, - status/types/[rpc_response], - status/signals/[base] + status/types/[rpc_response] import account_list, account_item diff --git a/src/app/wallet/v2/core.nim b/src/app/wallet/v2/core.nim index 084f416814..c1367bb58e 100644 --- a/src/app/wallet/v2/core.nim +++ b/src/app/wallet/v2/core.nim @@ -7,8 +7,7 @@ import status/[status, wallet2, settings] import status/wallet2/account as WalletTypes import status/types/[transaction, setting] import ../../../app_service/[main] -import status/signals/[base] -import status/signals/wallet as wallet_signal +import status/signals import eventemitter logScope: diff --git a/src/app/wallet/v2/views/accounts.nim b/src/app/wallet/v2/views/accounts.nim index f1cf7080dd..a0758c4fbf 100644 --- a/src/app/wallet/v2/views/accounts.nim +++ b/src/app/wallet/v2/views/accounts.nim @@ -3,8 +3,7 @@ import NimQml, json, sequtils, chronicles, strutils, strformat, json import status/[status, settings], status/wallet2 as status_wallet, - status/types/[rpc_response], - status/signals/[base] + status/types/[rpc_response] import account_list, account_item diff --git a/src/app_service/signals/signal_controller.nim b/src/app_service/signals/signal_controller.nim index f7569b288f..3b02541757 100644 --- a/src/app_service/signals/signal_controller.nim +++ b/src/app_service/signals/signal_controller.nim @@ -1,6 +1,5 @@ import NimQml, json, chronicles, strutils, json_serialization -import status/signals/[base, signal_type, messages, discovery_summary, whisper_filter, envelope, expired, - wallet, mailserver, community, stats] +import status/signals import status/status import eventemitter @@ -33,41 +32,23 @@ QtObject: error "Invalid signal received", data = statusSignal return - let signalString = jsonSignal["type"].getStr - trace "Raw signal data", data = $jsonSignal - var signalType: SignalType - + var signal:Signal try: - signalType = parseEnum[SignalType](signalString) + signal = decode(jsonSignal) except: - warn "Unknown signal received", type = signalString - signalType = SignalType.Unknown + warn "Error decoding signal", err=getCurrentExceptionMsg() return - var signal: Signal = case signalType: - of SignalType.Message: messages.fromEvent(jsonSignal) - of SignalType.EnvelopeSent: envelope.fromEvent(jsonSignal) - of SignalType.EnvelopeExpired: expired.fromEvent(jsonSignal) - of SignalType.WhisperFilterAdded: whisperFilter.fromEvent(jsonSignal) - of SignalType.Wallet: wallet.fromEvent(jsonSignal) - of SignalType.NodeLogin: Json.decode($jsonSignal, NodeSignal) - of SignalType.DiscoverySummary: discovery_summary.fromEvent(jsonSignal) - of SignalType.MailserverRequestCompleted: mailserver.fromCompletedEvent(jsonSignal) - of SignalType.MailserverRequestExpired: mailserver.fromExpiredEvent(jsonSignal) - of SignalType.CommunityFound: community.fromEvent(jsonSignal) - of SignalType.Stats: stats.fromEvent(jsonSignal) - else: Signal() - - if(signalType == SignalType.NodeLogin): + if(signal.signalType == SignalType.NodeLogin): if(NodeSignal(signal).event.error != ""): error "node.login", error=NodeSignal(signal).event.error - if(signalType == SignalType.NodeCrashed): + if(signal.signalType == SignalType.NodeCrashed): error "node.crashed", error=statusSignal - self.status.events.emit(signalType.event, signal) + self.status.events.emit(signal.signalType.event, signal) proc signalReceived*(self: SignalsController, signal: string) {.signal.} diff --git a/vendor/nim-status-lib b/vendor/nim-status-lib index 0b24d7a341..a044a941e6 160000 --- a/vendor/nim-status-lib +++ b/vendor/nim-status-lib @@ -1 +1 @@ -Subproject commit 0b24d7a341dadcfdf59c6dbbb93506b6bb20bf66 +Subproject commit a044a941e671b66bb55dd127daa2d97a1f1d0535