From 8a06c083fab9c66e754c7ed5a75dd4d89131c43e Mon Sep 17 00:00:00 2001 From: Jacques Comeaux Date: Sun, 29 May 2022 16:07:59 -0500 Subject: Improve error reporting --- src/Data/Message.hs | 81 ----------------------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 src/Data/Message.hs (limited to 'src/Data/Message.hs') diff --git a/src/Data/Message.hs b/src/Data/Message.hs deleted file mode 100644 index c218cdc..0000000 --- a/src/Data/Message.hs +++ /dev/null @@ -1,81 +0,0 @@ -{-# LANGUAGE DeriveGeneric #-} -module Data.Message - ( InMessage (..) - , GMIUrl (..) - , OutMessage (..) - ) where - -import RIO - -import Data.Aeson ((.:), (.=)) -import Network.HTTP.Req - ( Url - , Scheme (Https) - , useHttpsURI - , renderUrl - ) - -import qualified Data.Aeson as Ae -import qualified Data.Aeson.Types as Ae -import qualified RIO.Vector as V -import qualified Text.URI as URI - -data InMessage = InMessage - { hasAttach :: !Bool - , groupId :: !Text - , isUser :: !Bool - , text :: !Text - } deriving (Show, Generic) - -instance NFData InMessage - -instance Ae.FromJSON InMessage where - parseJSON = Ae.withObject "InMessage" $ \o -> InMessage - <$> (o .: "attachments" >>= Ae.withArray "attachments" (pure . not . null)) - <*> o .: "group_id" - <*> ((==) ("user" :: Text) <$> o .: "sender_type") - <*> o .: "text" - - -newtype GMIUrl = GMIUrl - { unGMIUrl :: Url Https - } deriving Show - -instance Ae.FromJSON GMIUrl where - parseJSON = Ae.withObject "payload" $ \o -> do - p <- o .: "payload" - u <- p .: "url" - GMIUrl <$> toUrl u - where - toUrl :: Text -> Ae.Parser (Url Https) - toUrl t = maybe mzero pure $ fmap fst $ useHttpsURI =<< URI.mkURI t - -data OutMessage = OutMessage - { image :: !GMIUrl - } deriving Show - -instance Ae.ToJSON OutMessage where - toJSON om = Ae.object - [ "attachments" .= - ( Ae.Array $ V.singleton attach ) - -- , "bot_id" .= botId - ] - where - attach :: Ae.Value - attach = Ae.object - [ "type" .= ("image" :: Text) - , "url" .= url - ] - url :: Text - url = renderUrl $ unGMIUrl $ image om - - -- { - -- "bot_id" : "j5abcdefg", - -- "text" : "Hello world", - -- "attachments" : [ - -- { - -- "type" : "image", - -- "url" : "https://i.groupme.com/somethingsomething.large" - -- } - -- ] --- } -- cgit v1.2.3