20 lines
584 B
Haskell
20 lines
584 B
Haskell
|
{-# LANGUAGE OverloadedStrings #-}
|
||
|
module Handler.Comment where
|
||
|
|
||
|
import Import
|
||
|
import Data.Aeson
|
||
|
|
||
|
newtype Comment = Comment Text
|
||
|
|
||
|
instance ToJSON Comment where
|
||
|
toJSON (Comment t) = object ["message" .= t]
|
||
|
instance FromJSON Comment where
|
||
|
parseJSON = withObject "Comment" $ \o -> Comment <$> o .: "message"
|
||
|
|
||
|
postCommentR :: Handler Value
|
||
|
postCommentR = do
|
||
|
-- requireCheckJsonBody will parse the request body into the appropriate type, or return a 400 status code if the request JSON is invalid.
|
||
|
comment <- requireCheckJsonBody :: Handler Comment
|
||
|
|
||
|
returnJson comment
|