{- | Module : Servant.Checked.Exceptions.Internal.Verbs Copyright : Dennis Gosnell 2017 License : BSD3 Maintainer : Dennis Gosnell (cdep.illabout@gmail.com) Stability : experimental Portability : unknown This module defines the 'Throws' and 'Throwing' types. -} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Servant.Checked.Exceptions.Internal.Verbs where import Data.Typeable (Typeable) import GHC.Generics (Generic) import GHC.TypeLits (Nat) import Network.HTTP.Types (StdMethod(DELETE, GET, PATCH, POST, PUT)) data VerbWithErr (method :: k1) (successStatusCode :: Nat) (contentTypes :: [*]) (es :: [*]) a deriving (Generic, Typeable) type GetWithErr = VerbWithErr 'GET 200 type PostWithErr = VerbWithErr 'POST 200 type PutWithErr = VerbWithErr 'PUT 200 type DeleteWithErr = VerbWithErr 'DELETE 200 type PatchWithErr = VerbWithErr 'PATCH 200 type PostCreatedWithErr = VerbWithErr 'POST 201 type GetAcceptedWithErr = VerbWithErr 'GET 202 type PostAcceptedWithErr = VerbWithErr 'POST 202 type DeleteAcceptedWithErr = VerbWithErr 'DELETE 202 type PatchAcceptedWithErr = VerbWithErr 'PATCH 202 type PutAcceptedWithErr = VerbWithErr 'PUT 202 type GetNonAuthoritativeWithErr = VerbWithErr 'GET 203 type PostNonAuthoritativeWithErr = VerbWithErr 'POST 203 type DeleteNonAuthoritativeWithErr = VerbWithErr 'DELETE 203 type PatchNonAuthoritativeWithErr = VerbWithErr 'PATCH 203 type PutNonAuthoritativeWithErr = VerbWithErr 'PUT 203 type GetNoContentWithErr = VerbWithErr 'GET 204 type PostNoContentWithErr = VerbWithErr 'POST 204 type DeleteNoContentWithErr = VerbWithErr 'DELETE 204 type PatchNoContentWithErr = VerbWithErr 'PATCH 204 type PutNoContentWithErr = VerbWithErr 'PUT 204 type GetResetContentWithErr = VerbWithErr 'GET 205 type PostResetContentWithErr = VerbWithErr 'POST 205 type DeleteResetContentWithErr = VerbWithErr 'DELETE 205 type PatchResetContentWithErr = VerbWithErr 'PATCH 205 type PutResetContentWithErr = VerbWithErr 'PUT 205 type GetPartialContentWithErr = VerbWithErr 'GET 206