diff options
-rw-r--r-- | src/Reaktor/Internal.hs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Reaktor/Internal.hs b/src/Reaktor/Internal.hs index bd3d241..824c57e 100644 --- a/src/Reaktor/Internal.hs +++ b/src/Reaktor/Internal.hs @@ -58,6 +58,15 @@ instance FromJSON Config where data Message = Message (Maybe Text) Command [Text] | Start deriving Show +instance FromJSON Message where + parseJSON = \case + Object v -> do + mb_prefix <- v .:? "prefix" + cmd <- v .: "command" + params <- v .: "params" + pure (Message mb_prefix cmd params) + invalid -> typeMismatch "Message" invalid + formatMessage :: Message -> Text formatMessage = \case Message mb_prefix cmd params -> |