]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/StatusCode.hs
StatusCode is now a type class, not an algebraic data type.
[Lucu.git] / Network / HTTP / Lucu / StatusCode.hs
diff --git a/Network/HTTP/Lucu/StatusCode.hs b/Network/HTTP/Lucu/StatusCode.hs
new file mode 100644 (file)
index 0000000..950d964
--- /dev/null
@@ -0,0 +1,133 @@
+{-# LANGUAGE
+    DeriveDataTypeable
+  , QuasiQuotes
+  #-}
+-- |Definition of HTTP status code.
+-- 'Network.HTTP.Lucu.Resource.setStatus' accepts these named status
+-- codes so you don't have to memorize that, say, \"Gateway Timeout\"
+-- is 504.
+module Network.HTTP.Lucu.StatusCode
+    ( -- * Informational
+      Continue(..)
+    , SwitchingProtocols(..)
+    , Processing(..)
+
+      -- * Successful
+    , OK(..)
+    , Created(..)
+    , Accepted(..)
+    , NonAuthoritativeInformation(..)
+    , NoContent(..)
+    , ResetContent(..)
+    , PartialContent(..)
+    , MultiStatus(..)
+    , AlreadyReported(..)
+    , IMUsed(..)
+
+      -- * Redirection
+    , MultipleChoices(..)
+    , MovedPermanently(..)
+    , Found(..)
+    , SeeOther(..)
+    , NotModified(..)
+    , UseProxy(..)
+    , TemporaryRedirect(..)
+
+      -- * Client Error
+    , BadRequest(..)
+    , Unauthorized(..)
+    , PaymentRequired(..)
+    , Forbidden(..)
+    , NotFound(..)
+    , MethodNotAllowed(..)
+    , NotAcceptable(..)
+    , ProxyAuthenticationRequired(..)
+    , RequestTimeout(..)
+    , Conflict(..)
+    , Gone(..)
+    , LengthRequired(..)
+    , PreconditionFailed(..)
+    , RequestEntityTooLarge(..)
+    , RequestURITooLarge(..)
+    , UnsupportedMediaType(..)
+    , RequestRangeNotSatisfiable(..)
+    , ExpectationFailed(..)
+    , UnprocessableEntity(..)
+    , Locked(..)
+    , FailedDependency(..)
+    , UpgradeRequired(..)
+
+      -- * Server Error
+    , InternalServerError(..)
+    , NotImplemented(..)
+    , BadGateway(..)
+    , ServiceUnavailable(..)
+    , GatewayTimeout(..)
+    , HTTPVersionNotSupported(..)
+    , VariantAlsoNegotiates(..)
+    , InsufficientStorage(..)
+    , LoopDetected(..)
+    , NotExtended(..)
+    )
+    where
+import Data.Typeable
+import Network.HTTP.Lucu.StatusCode.Internal
+
+[statusCodes|
+100 Continue
+101 Switching Protocols
+102 Processing
+
+200 OK
+201 Created
+202 Accepted
+203 Non Authoritative Information
+204 No Content
+205 Reset Content
+206 Partial Content
+207 Multi Status
+208 Already Reported
+226 IM Used
+
+300 Multiple Choices
+301 Moved Permanently
+302 Found
+303 See Other
+304 Not Modified
+305 Use Proxy
+307 Temporary Redirect
+
+400 Bad Request
+401 Unauthorized
+402 Payment Required
+403 Forbidden
+404 Not Found
+405 Method Not Allowed
+406 Not Acceptable
+407 Proxy Authentication Required
+408 Request Timeout
+409 Conflict
+410 Gone
+411 Length Required
+412 Precondition Failed
+413 Request Entity Too Large
+414 Request URI Too Large
+415 Unsupported Media Type
+416 Request Range Not Satisfiable
+417 Expectation Failed
+422 Unprocessable Entity
+423 Locked
+424 Failed Dependency
+426 Upgrade Required
+
+500 Internal Server Error
+501 Not Implemented
+502 Bad Gateway
+503 Service Unavailable
+504 Gateway Timeout
+505 HTTP Version Not Supported
+506 Variant Also Negotiates
+507 Insufficient Storage
+508 Loop Detected
+510 Not Extended
+|]