cachix-api-0.4.0: src/Cachix/Types/Servant.hs
{-# 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 :: [*]) (hs :: [*]) = Verb 'GET 302 cts (Headers (Header "Location" Text ': hs) NoContent)
type Post302 (cts :: [*]) (hs :: [*]) = Verb 'POST 302 cts (Headers (Header "Location" Text ': hs) NoContent)
-- TODO: allow empty CT with HEAD
type Head = Verb 'HEAD 200 '[JSON] NoContent