From c07e04e976f46edc72077b4095001afd10170a6a Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Tue, 28 Sep 2021 14:41:40 -0400 Subject: [PATCH] feat: mailserver request signals (#46) --- status/signals.nim | 3 +++ status/signals/mailserver.nim | 24 +++++++++++++++++++++++- status/signals/signal_type.nim | 3 +++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/status/signals.nim b/status/signals.nim index 2f5bd54..b38115a 100644 --- a/status/signals.nim +++ b/status/signals.nim @@ -24,6 +24,9 @@ proc decode*(jsonSignal: JsonNode): Signal = of SignalType.CommunityFound: CommunitySignal.fromEvent(jsonSignal) of SignalType.Stats: StatsSignal.fromEvent(jsonSignal) of SignalType.ChroniclesLogs: ChroniclesLogsSignal.fromEvent(jsonSignal) + of SignalType.HistoryRequestCompleted: HistoryRequestCompletedSignal.fromEvent(jsonSignal) + of SignalType.HistoryRequestStarted: HistoryRequestStartedSignal.fromEvent(jsonSignal) + of SignalType.HistoryRequestFailed: HistoryRequestFailedSignal.fromEvent(jsonSignal) else: Signal() result.signalType = signalType diff --git a/status/signals/mailserver.nim b/status/signals/mailserver.nim index e0cab09..d51bc9e 100644 --- a/status/signals/mailserver.nim +++ b/status/signals/mailserver.nim @@ -13,6 +13,13 @@ type MailserverRequestCompletedSignal* = ref object of Signal type MailserverRequestExpiredSignal* = ref object of Signal # TODO +type HistoryRequestStartedSignal* = ref object of Signal +type HistoryRequestCompletedSignal* = ref object of Signal +type HistoryRequestFailedSignal* = ref object of Signal + errorMessage*: string + error*: bool + + proc fromEvent*(T: type MailserverRequestCompletedSignal, jsonSignal: JsonNode): MailserverRequestCompletedSignal = result = MailserverRequestCompletedSignal() result.signalType = SignalType.MailserverRequestCompleted @@ -26,4 +33,19 @@ proc fromEvent*(T: type MailserverRequestCompletedSignal, jsonSignal: JsonNode): proc fromEvent*(T: type MailserverRequestExpiredSignal, jsonSignal: JsonNode): MailserverRequestExpiredSignal = # TODO: parse signal result = MailserverRequestExpiredSignal() - result.signalType = SignalType.MailserverRequestExpired \ No newline at end of file + result.signalType = SignalType.MailserverRequestExpired + +proc fromEvent*(T: type HistoryRequestStartedSignal, jsonSignal: JsonNode): HistoryRequestStartedSignal = + result = HistoryRequestStartedSignal() + result.signalType = SignalType.HistoryRequestStarted + +proc fromEvent*(T: type HistoryRequestCompletedSignal, jsonSignal: JsonNode): HistoryRequestCompletedSignal = + result = HistoryRequestCompletedSignal() + result.signalType = SignalType.HistoryRequestCompleted + +proc fromEvent*(T: type HistoryRequestFailedSignal, jsonSignal: JsonNode): HistoryRequestFailedSignal = + result = HistoryRequestFailedSignal() + result.signalType = SignalType.HistoryRequestStarted + if jsonSignal["event"].kind != JNull: + result.errorMessage = jsonSignal["event"]{"errorMessage"}.getStr() + result.error = result.errorMessage != "" diff --git a/status/signals/signal_type.nim b/status/signals/signal_type.nim index d3057c8..0934f20 100644 --- a/status/signals/signal_type.nim +++ b/status/signals/signal_type.nim @@ -21,6 +21,9 @@ type SignalType* {.pure.} = enum CommunityFound = "community.found" Stats = "stats" ChroniclesLogs = "chronicles-log" + HistoryRequestStarted = "history.request.started" + HistoryRequestCompleted = "history.request.completed" + HistoryRequestFailed = "history.request.failed" Unknown proc event*(self:SignalType):string =