{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE TypeOperators #-}
module Put where
import Data.Aeson
import Data.Hashable
import GHC.Generics (Generic)
import Servant
type Api =
Get '[JSON] Foo
:<|> ReqBody '[JSON] Foo :> Put '[JSON] ()
:<|> ReqBody '[JSON] Foo :> Put '[JSON] NoContent
data Foo = Foo
deriving (Eq, Show, Generic)
instance Hashable Foo
instance ToJSON Foo
instance FromJSON Foo
server :: Server Api
server =
pure Foo
:<|> const (pure ())
:<|> const (pure NoContent)