packages feed

roboservant-0.1.0.3: test/Put.hs

{-# 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)