module JSON.API.Event.Post.Request
( Meta(..)
, Data(..)
, Message(..)
, encode
, decode
, eitherDecode
) where
import GHC.Generics
import Data.Text
import Data.Aeson
data Meta = Meta
{ h_type :: Text
, h_id :: [Char]
, h_group :: Text
} deriving (Show, Generic)
data Data = Data
{ h_createdAt :: Int
, h_content :: Text
, h_eventType :: Text
, h_senderType :: Text
, h_senderId :: [Char]
, h_customerId :: [Char]
} deriving (Show, Generic)
data Message = Message
{ h_meta :: Meta
, h_data :: Data
} deriving (Show, Generic)
instance FromJSON Meta
instance FromJSON Data
instance FromJSON Message
instance ToJSON Meta
instance ToJSON Data where
toJSON (Data h_createdAt h_content h_eventType h_senderType h_senderId h_customerId) =
object [ "h_createdAt" .= h_createdAt
, "h_content" .= h_content
, "h_type" .= h_eventType
, "h_senderType" .= h_senderType
, "h_senderId" .= h_senderId
, "h_customerId" .= h_customerId
]
instance ToJSON Message