import qualified Data.CaseInsensitive as CI
import Data.Convertible.Base
import Data.Convertible.Utils
-import Data.Eq.Indirect
import Data.Maybe
import Data.Monoid.Unicode
import Data.Text (Text)
-- 1xx responses don't have a body.
-- 2xx responses don't need a body to be completed.
-- 3xx:
- | resStatus ≡: MovedPermanently
+ | resStatus ≡ cs MovedPermanently
= do unsafeByteString "The resource at "
path
unsafeByteString " has been moved to "
a ! href (toValue loc) $ toHtml loc
unsafeByteString " permanently."
- | resStatus ≡: Found
+ | resStatus ≡ cs Found
= do unsafeByteString "The resource at "
path
unsafeByteString " is currently located at "
a ! href (toValue loc) $ toHtml loc
unsafeByteString ". This is not a permanent relocation."
- | resStatus ≡: SeeOther
+ | resStatus ≡ cs SeeOther
= do unsafeByteString "The resource at "
path
unsafeByteString " can be found at "
a ! href (toValue loc) $ toHtml loc
unsafeByteString "."
- | resStatus ≡: TemporaryRedirect
+ | resStatus ≡ cs TemporaryRedirect
= do unsafeByteString "The resource at "
path
unsafeByteString " is temporarily located at "
unsafeByteString "."
-- 4xx:
- | resStatus ≡: BadRequest
+ | resStatus ≡ cs BadRequest
= unsafeByteString "The server could not understand the request you sent."
- | resStatus ≡: Unauthorized
+ | resStatus ≡ cs Unauthorized
= unsafeByteString "You need a valid authentication to access " ⊕ path
- | resStatus ≡: Forbidden
+ | resStatus ≡ cs Forbidden
= unsafeByteString "You don't have permission to access " ⊕ path
- | resStatus ≡: NotFound
+ | resStatus ≡ cs NotFound
= do unsafeByteString "The requested URL "
path
unsafeByteString " was not found on this server."
- | resStatus ≡: Gone
+ | resStatus ≡ cs Gone
= do unsafeByteString "The resource at "
path
unsafeByteString " was here in past times, but has gone permanently."
- | resStatus ≡: RequestEntityTooLarge
+ | resStatus ≡ cs RequestEntityTooLarge
= do unsafeByteString "The request entity you sent for "
path
unsafeByteString " was too large to accept."
- | resStatus ≡: RequestURITooLarge
+ | resStatus ≡ cs RequestURITooLarge
= unsafeByteString "The request URI you sent was too large to accept."
-- 5xx:
- | resStatus ≡: InternalServerError
+ | resStatus ≡ cs InternalServerError
= unsafeByteString "An internal server error has occured during the process of your request to " ⊕ path
- | resStatus ≡: ServiceUnavailable
+ | resStatus ≡ cs ServiceUnavailable
= unsafeByteString "The service is temporarily unavailable. Try later."
| otherwise