{-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE TypeOperators #-} -- | Servant specific additions that could be upstreamed module Cachix.Types.Servant ( Get302, Post302, Head, ) where import Protolude import Servant.API -- Location header as per https://github.com/haskell-servant/servant/issues/117#issuecomment-381398666 type Get302 (cts :: [Type]) (hs :: [Type]) = Verb 'GET 302 cts (Headers (Header "Location" Text ': hs) NoContent) type Post302 (cts :: [Type]) (hs :: [Type]) = Verb 'POST 302 cts (Headers (Header "Location" Text ': hs) NoContent) -- TODO: allow empty CT with HEAD type Head = Verb 'HEAD 200 '[JSON] NoContent