LTS 14.3
This commit is contained in:
parent
038a7dc56b
commit
e5dae59d49
3 changed files with 53 additions and 58 deletions
|
@ -28,7 +28,7 @@ import Servant
|
||||||
import qualified Text.Blaze.Html.Renderer.Utf8 as Utf8
|
import qualified Text.Blaze.Html.Renderer.Utf8 as Utf8
|
||||||
import qualified Text.Blaze.Html5 as H
|
import qualified Text.Blaze.Html5 as H
|
||||||
|
|
||||||
htmlErr :: H.ToMarkup j => ServantErr -> j -> ServantErr
|
htmlErr :: H.ToMarkup j => ServerError -> j -> ServerError
|
||||||
htmlErr err j = err { errBody = Utf8.renderHtml (H.toMarkup j)
|
htmlErr err j = err { errBody = Utf8.renderHtml (H.toMarkup j)
|
||||||
, errHeaders = [ (hContentType
|
, errHeaders = [ (hContentType
|
||||||
, "text/html;charset=utf-8") ]
|
, "text/html;charset=utf-8") ]
|
||||||
|
@ -48,8 +48,8 @@ instance H.ToMarkup HTTPError where
|
||||||
H.p (H.text details)
|
H.p (H.text details)
|
||||||
|
|
||||||
|
|
||||||
throwHTMLErr :: (MonadError ServantErr m)
|
throwHTMLErr :: (MonadError ServerError m)
|
||||||
=> ServantErr -> Text -> Maybe User -> m a
|
=> ServerError -> Text -> Maybe User -> m a
|
||||||
throwHTMLErr err msg muser =
|
throwHTMLErr err msg muser =
|
||||||
throwError (htmlErr err
|
throwError (htmlErr err
|
||||||
(HTTPError
|
(HTTPError
|
||||||
|
@ -67,70 +67,70 @@ throwHTMLErr err msg muser =
|
||||||
| 500 <= c && c < 600 = " (Server Error)"
|
| 500 <= c && c < 600 = " (Server Error)"
|
||||||
| otherwise = " (Urepertoried HTTP Error Kind)"
|
| otherwise = " (Urepertoried HTTP Error Kind)"
|
||||||
|
|
||||||
badRequest :: MonadError ServantErr m => Text -> Maybe User -> m a
|
badRequest :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
badRequest = throwHTMLErr err400
|
badRequest = throwHTMLErr err400
|
||||||
|
|
||||||
unauthorized :: MonadError ServantErr m => Text -> Maybe User -> m a
|
unauthorized :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
unauthorized = throwHTMLErr err401
|
unauthorized = throwHTMLErr err401
|
||||||
|
|
||||||
|
|
||||||
paymentRequired :: MonadError ServantErr m => Text -> Maybe User -> m a
|
paymentRequired :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
paymentRequired = throwHTMLErr err402
|
paymentRequired = throwHTMLErr err402
|
||||||
|
|
||||||
forbidden :: MonadError ServantErr m => Text -> Maybe User -> m a
|
forbidden :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
forbidden = throwHTMLErr err403
|
forbidden = throwHTMLErr err403
|
||||||
|
|
||||||
notFound :: MonadError ServantErr m => Text -> Maybe User -> m a
|
notFound :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
notFound = throwHTMLErr err404
|
notFound = throwHTMLErr err404
|
||||||
|
|
||||||
methodNotAllowed :: MonadError ServantErr m => Text -> Maybe User -> m a
|
methodNotAllowed :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
methodNotAllowed = throwHTMLErr err405
|
methodNotAllowed = throwHTMLErr err405
|
||||||
|
|
||||||
notAcceptable :: MonadError ServantErr m => Text -> Maybe User -> m a
|
notAcceptable :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
notAcceptable = throwHTMLErr err406
|
notAcceptable = throwHTMLErr err406
|
||||||
|
|
||||||
proxyAuthenticationRequired :: MonadError ServantErr m => Text -> Maybe User -> m a
|
proxyAuthenticationRequired :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
proxyAuthenticationRequired = throwHTMLErr err407
|
proxyAuthenticationRequired = throwHTMLErr err407
|
||||||
|
|
||||||
err408 :: ServantErr
|
err408 :: ServerError
|
||||||
err408 = ServantErr { errHTTPCode = 408
|
err408 = ServerError { errHTTPCode = 408
|
||||||
, errReasonPhrase = "Request Timeout"
|
, errReasonPhrase = "Request Timeout"
|
||||||
, errBody = ""
|
, errBody = ""
|
||||||
, errHeaders = []
|
, errHeaders = []
|
||||||
}
|
}
|
||||||
|
|
||||||
requestTimeout :: MonadError ServantErr m => Text -> Maybe User -> m a
|
requestTimeout :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
requestTimeout = throwHTMLErr err408
|
requestTimeout = throwHTMLErr err408
|
||||||
|
|
||||||
conflict :: MonadError ServantErr m => Text -> Maybe User -> m a
|
conflict :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
conflict = throwHTMLErr err409
|
conflict = throwHTMLErr err409
|
||||||
|
|
||||||
gone :: MonadError ServantErr m => Text -> Maybe User -> m a
|
gone :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
gone = throwHTMLErr err410
|
gone = throwHTMLErr err410
|
||||||
|
|
||||||
lengthRequired :: MonadError ServantErr m => Text -> Maybe User -> m a
|
lengthRequired :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
lengthRequired = throwHTMLErr err411
|
lengthRequired = throwHTMLErr err411
|
||||||
|
|
||||||
preconditionFailed :: MonadError ServantErr m => Text -> Maybe User -> m a
|
preconditionFailed :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
preconditionFailed = throwHTMLErr err412
|
preconditionFailed = throwHTMLErr err412
|
||||||
|
|
||||||
requestEntityTooLarge :: MonadError ServantErr m => Text -> Maybe User -> m a
|
requestEntityTooLarge :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
requestEntityTooLarge = throwHTMLErr err413
|
requestEntityTooLarge = throwHTMLErr err413
|
||||||
|
|
||||||
requestURITooLong :: MonadError ServantErr m => Text -> Maybe User -> m a
|
requestURITooLong :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
requestURITooLong = throwHTMLErr err414
|
requestURITooLong = throwHTMLErr err414
|
||||||
|
|
||||||
internalServerError :: MonadError ServantErr m => Text -> Maybe User -> m a
|
internalServerError :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
internalServerError = throwHTMLErr err500
|
internalServerError = throwHTMLErr err500
|
||||||
|
|
||||||
notImplemented :: MonadError ServantErr m => Text -> Maybe User -> m a
|
notImplemented :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
notImplemented = throwHTMLErr err501
|
notImplemented = throwHTMLErr err501
|
||||||
|
|
||||||
badGateway :: MonadError ServantErr m => Text -> Maybe User -> m a
|
badGateway :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
badGateway = throwHTMLErr err502
|
badGateway = throwHTMLErr err502
|
||||||
|
|
||||||
serviceUnavailable :: MonadError ServantErr m => Text -> Maybe User -> m a
|
serviceUnavailable :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
serviceUnavailable = throwHTMLErr err503
|
serviceUnavailable = throwHTMLErr err503
|
||||||
|
|
||||||
gatewayTimeout :: MonadError ServantErr m => Text -> Maybe User -> m a
|
gatewayTimeout :: MonadError ServerError m => Text -> Maybe User -> m a
|
||||||
gatewayTimeout = throwHTMLErr err504
|
gatewayTimeout = throwHTMLErr err504
|
||||||
|
|
|
@ -23,7 +23,7 @@ import Servant
|
||||||
import Network.HTTP.Types (hContentType)
|
import Network.HTTP.Types (hContentType)
|
||||||
import Data.Aeson (encode, ToJSON)
|
import Data.Aeson (encode, ToJSON)
|
||||||
|
|
||||||
jsonErr :: ToJSON j => ServantErr -> j -> ServantErr
|
jsonErr :: ToJSON j => ServerError -> j -> ServerError
|
||||||
jsonErr err j = err { errBody = encode j
|
jsonErr err j = err { errBody = encode j
|
||||||
, errHeaders = [ (hContentType
|
, errHeaders = [ (hContentType
|
||||||
, "application/json;charset=utf-8") ]
|
, "application/json;charset=utf-8") ]
|
||||||
|
@ -38,8 +38,8 @@ data HTTPError =
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
throwJSONErr :: (MonadError ServantErr m)
|
throwJSONErr :: (MonadError ServerError m)
|
||||||
=> ServantErr -> Text -> m a
|
=> ServerError -> Text -> m a
|
||||||
throwJSONErr err msg =
|
throwJSONErr err msg =
|
||||||
throwError (jsonErr err
|
throwError (jsonErr err
|
||||||
(HTTPError
|
(HTTPError
|
||||||
|
@ -56,70 +56,70 @@ throwJSONErr err msg =
|
||||||
| 500 <= c && c < 600 = " (Server Error)"
|
| 500 <= c && c < 600 = " (Server Error)"
|
||||||
| otherwise = " (Urepertoried HTTP Error Kind)"
|
| otherwise = " (Urepertoried HTTP Error Kind)"
|
||||||
|
|
||||||
badRequest :: MonadError ServantErr m => Text -> m a
|
badRequest :: MonadError ServerError m => Text -> m a
|
||||||
badRequest = throwJSONErr err400
|
badRequest = throwJSONErr err400
|
||||||
|
|
||||||
unauthorized :: MonadError ServantErr m => Text -> m a
|
unauthorized :: MonadError ServerError m => Text -> m a
|
||||||
unauthorized = throwJSONErr err401
|
unauthorized = throwJSONErr err401
|
||||||
|
|
||||||
|
|
||||||
paymentRequired :: MonadError ServantErr m => Text -> m a
|
paymentRequired :: MonadError ServerError m => Text -> m a
|
||||||
paymentRequired = throwJSONErr err402
|
paymentRequired = throwJSONErr err402
|
||||||
|
|
||||||
forbidden :: MonadError ServantErr m => Text -> m a
|
forbidden :: MonadError ServerError m => Text -> m a
|
||||||
forbidden = throwJSONErr err403
|
forbidden = throwJSONErr err403
|
||||||
|
|
||||||
notFound :: MonadError ServantErr m => Text -> m a
|
notFound :: MonadError ServerError m => Text -> m a
|
||||||
notFound = throwJSONErr err404
|
notFound = throwJSONErr err404
|
||||||
|
|
||||||
methodNotAllowed :: MonadError ServantErr m => Text -> m a
|
methodNotAllowed :: MonadError ServerError m => Text -> m a
|
||||||
methodNotAllowed = throwJSONErr err405
|
methodNotAllowed = throwJSONErr err405
|
||||||
|
|
||||||
notAcceptable :: MonadError ServantErr m => Text -> m a
|
notAcceptable :: MonadError ServerError m => Text -> m a
|
||||||
notAcceptable = throwJSONErr err406
|
notAcceptable = throwJSONErr err406
|
||||||
|
|
||||||
proxyAuthenticationRequired :: MonadError ServantErr m => Text -> m a
|
proxyAuthenticationRequired :: MonadError ServerError m => Text -> m a
|
||||||
proxyAuthenticationRequired = throwJSONErr err407
|
proxyAuthenticationRequired = throwJSONErr err407
|
||||||
|
|
||||||
err408 :: ServantErr
|
err408 :: ServerError
|
||||||
err408 = ServantErr { errHTTPCode = 408
|
err408 = ServerError { errHTTPCode = 408
|
||||||
, errReasonPhrase = "Request Timeout"
|
, errReasonPhrase = "Request Timeout"
|
||||||
, errBody = ""
|
, errBody = ""
|
||||||
, errHeaders = []
|
, errHeaders = []
|
||||||
}
|
}
|
||||||
|
|
||||||
requestTimeout :: MonadError ServantErr m => Text -> m a
|
requestTimeout :: MonadError ServerError m => Text -> m a
|
||||||
requestTimeout = throwJSONErr err408
|
requestTimeout = throwJSONErr err408
|
||||||
|
|
||||||
conflict :: MonadError ServantErr m => Text -> m a
|
conflict :: MonadError ServerError m => Text -> m a
|
||||||
conflict = throwJSONErr err409
|
conflict = throwJSONErr err409
|
||||||
|
|
||||||
gone :: MonadError ServantErr m => Text -> m a
|
gone :: MonadError ServerError m => Text -> m a
|
||||||
gone = throwJSONErr err410
|
gone = throwJSONErr err410
|
||||||
|
|
||||||
lengthRequired :: MonadError ServantErr m => Text -> m a
|
lengthRequired :: MonadError ServerError m => Text -> m a
|
||||||
lengthRequired = throwJSONErr err411
|
lengthRequired = throwJSONErr err411
|
||||||
|
|
||||||
preconditionFailed :: MonadError ServantErr m => Text -> m a
|
preconditionFailed :: MonadError ServerError m => Text -> m a
|
||||||
preconditionFailed = throwJSONErr err412
|
preconditionFailed = throwJSONErr err412
|
||||||
|
|
||||||
requestEntityTooLarge :: MonadError ServantErr m => Text -> m a
|
requestEntityTooLarge :: MonadError ServerError m => Text -> m a
|
||||||
requestEntityTooLarge = throwJSONErr err413
|
requestEntityTooLarge = throwJSONErr err413
|
||||||
|
|
||||||
requestURITooLong :: MonadError ServantErr m => Text -> m a
|
requestURITooLong :: MonadError ServerError m => Text -> m a
|
||||||
requestURITooLong = throwJSONErr err414
|
requestURITooLong = throwJSONErr err414
|
||||||
|
|
||||||
internalServerError :: MonadError ServantErr m => Text -> m a
|
internalServerError :: MonadError ServerError m => Text -> m a
|
||||||
internalServerError = throwJSONErr err500
|
internalServerError = throwJSONErr err500
|
||||||
|
|
||||||
notImplemented :: MonadError ServantErr m => Text -> m a
|
notImplemented :: MonadError ServerError m => Text -> m a
|
||||||
notImplemented = throwJSONErr err501
|
notImplemented = throwJSONErr err501
|
||||||
|
|
||||||
badGateway :: MonadError ServantErr m => Text -> m a
|
badGateway :: MonadError ServerError m => Text -> m a
|
||||||
badGateway = throwJSONErr err502
|
badGateway = throwJSONErr err502
|
||||||
|
|
||||||
serviceUnavailable :: MonadError ServantErr m => Text -> m a
|
serviceUnavailable :: MonadError ServerError m => Text -> m a
|
||||||
serviceUnavailable = throwJSONErr err503
|
serviceUnavailable = throwJSONErr err503
|
||||||
|
|
||||||
gatewayTimeout :: MonadError ServantErr m => Text -> m a
|
gatewayTimeout :: MonadError ServerError m => Text -> m a
|
||||||
gatewayTimeout = throwJSONErr err504
|
gatewayTimeout = throwJSONErr err504
|
||||||
|
|
11
stack.yaml
11
stack.yaml
|
@ -18,7 +18,7 @@
|
||||||
#
|
#
|
||||||
# resolver: ./custom-snapshot.yaml
|
# resolver: ./custom-snapshot.yaml
|
||||||
# resolver: https://example.com/snapshots/2018-01-01.yaml
|
# resolver: https://example.com/snapshots/2018-01-01.yaml
|
||||||
resolver: lts-13.11
|
resolver: lts-14.3
|
||||||
|
|
||||||
# User packages to be built.
|
# User packages to be built.
|
||||||
# Various formats can be used as shown in the example below.
|
# Various formats can be used as shown in the example below.
|
||||||
|
@ -39,12 +39,7 @@ packages:
|
||||||
# Dependency packages to be pulled from upstream that are not in the resolver
|
# Dependency packages to be pulled from upstream that are not in the resolver
|
||||||
# using the same syntax as the packages field.
|
# using the same syntax as the packages field.
|
||||||
# (e.g., acme-missiles-0.3)
|
# (e.g., acme-missiles-0.3)
|
||||||
extra-deps:
|
extra-deps: []
|
||||||
- ixset-1.1.1
|
|
||||||
- human-readable-duration-0.2.1.2
|
|
||||||
- beam-core-0.8.0.0
|
|
||||||
- beam-migrate-0.4.0.0
|
|
||||||
- beam-sqlite-0.4.0.0
|
|
||||||
|
|
||||||
|
|
||||||
# Override default flag values for local packages and extra-deps
|
# Override default flag values for local packages and extra-deps
|
||||||
|
@ -72,4 +67,4 @@ extra-deps:
|
||||||
# compiler-check: newer-minor
|
# compiler-check: newer-minor
|
||||||
|
|
||||||
# for intero and 8.6.1
|
# for intero and 8.6.1
|
||||||
allow-newer: true
|
# allow-newer: true
|
||||||
|
|
Loading…
Reference in a new issue