Commit graph

75 commits

Author SHA1 Message Date
Julian Arni
ff40b327bc Merge pull request #504 from haskell-servant/jkarni/doc-fixes
Doc fixes
2016-05-12 09:53:35 +02:00
Oleg Grenrus
fd19694ed5 Make doctests accept GHC-8.0 formatted type errors 2016-05-10 19:09:59 +03:00
Julian K. Arni
d4c5edea25 Change throwErr to throwError. 2016-05-10 13:30:57 +02:00
Amar
61a99c9567 Replace Servant.Server.Internal.Enter with Servant.Utils.Enter in a comment 2016-04-28 22:26:27 +08:00
Amar
a948639673 Move enter to servant package 2016-04-28 22:13:04 +08:00
Andres Loeh
a551eb62e2 Do the accept check before the body check.
This is a reasonably simple attempt at fixing #460.
By moving the accept check to a place before the body check,
we can make it recoverable (the body check is irreversible,
so everything done after the body check has to fail fatally).

The advantage is that we can now specify routes offering
different content types modularly. Failure to match one
is not fatal, and will result in subsequent routes being
tried.

The disadvantage is that we hereby bump the error priority
of the 406 status code. If a request contains a bad accept
header and a bad body, we now get 406 rather than 400. This
deviates from the HTTP decision diagram we try to follow,
but seems like an acceptable compromise for now.
2016-04-15 10:54:22 +02:00
Andres Loeh
b1a6d88845 Revise the Router type to allow proper sharing.
We've previously used functions in the Router type to provide
information for subrouters. But this accesses the Requests too
early, and breaks sharing of the router structure in general,
causing the Router or large parts of the Router to be recomputed
on every request.

We now do not use functions anymore, and properly compute all
static parts of the router first, and gain access to the request
only in Delayed.

This also turns the code used within Delayed into a proper monad
now called DelayedIO, making some of the code using it a bit
nicer.
2016-04-12 09:38:49 +02:00
Luke Cycon
21546991af Introduce a Handler alias for ExceptT ServantErr IO
Fixes #434
2016-04-11 22:27:29 -07:00
Andres Loeh
8c778825c7 Improvements and visualization of router structure.
* Improves how Routers are built, in particular via
the `choice` smart constructors. Static lookups are
now used more often.

* We now have test cases making sure that certain
routers have the same structure.

* The router structure can now be visualized for debugging
purposes as a tree. The new functions `layout` and
`layoutWithContext` do this.
2016-04-11 08:08:37 +02:00
Sönke Hahn
8bf81190b2 add one more auth test
just to clarify on how to use it properly
2016-04-07 19:10:11 +08:00
Sönke Hahn
14ff219726 fix error status bug in basic auth
Fixes #440.
2016-04-06 11:18:20 +08:00
Sönke Hahn
4224c20bff some formatting and refactoring 2016-04-06 11:18:20 +08:00
Sönke Hahn
b72c271c2c remove ToText from docs 2016-04-02 15:03:00 +08:00
Sönke Hahn
09c40f61e2 return 400 (instead of 404) on invalid captures 2016-03-26 20:59:00 +08:00
Sönke Hahn
b4eef7acde refactored HasServer Capture instance 2016-03-26 20:58:59 +08:00
Alexander Kjeldaas
0c01b0dba4 Fixed some minor typos 2016-03-25 19:09:44 +01:00
Alexander Kjeldaas
0ad60fe093 Document http error codes 2016-03-25 10:53:45 +01:00
Denis Redozubov
a22a981190 update base-compat imports 2016-03-13 12:44:12 +03:00
Denis Redozubov
c755f47806 use base-compat in servant-server 2016-03-13 12:42:41 +03:00
aaron levin
b3af5a8d95 Move general authentication to Experimental module
Removes the UndecidableInstances extension in the module containing the
HasServer instances.
2016-03-09 22:30:34 +01:00
aaron levin
29f8e64e1c Add Experimental warnings on combinators 2016-03-09 22:30:34 +01:00
aaron levin
0461c4642d Add gen. authentication support to servant-server 2016-03-09 22:30:28 +01:00
aaron levin
546adc391a basic-auth: config -> context 2016-03-08 23:28:27 +01:00
aaron levin
104ac29bf8 Add BasicAuth support to servant-server 2016-03-08 23:13:02 +01:00
aaron levin
84172c6135 Augment Delayed to handle authentication. 2016-03-08 23:08:17 +01:00
Sönke Hahn
c6b6639453 reworded Context comment 2016-03-07 23:12:25 +08:00
Sönke Hahn
8ef4d4543b renaming: Config -> Context 2016-03-07 23:12:24 +08:00
Robert Klotzner
deb2ccaab0 Removed comment
as suggested by @soenkehahn
2016-03-04 12:11:44 +01:00
Robert Klotzner
c311f1a90b Added DeriveDataTypeable ghc-7.8.4 needs that. 2016-02-26 13:01:54 +01:00
Robert Klotzner
b1ff2beb8a Make ServantErr throwable 2016-02-26 12:27:19 +01:00
Julian K. Arni
f137972e5d Add 'serveWithConfig'.
And keep the old signature for 'serve'
2016-02-18 16:36:24 +01:00
Julian Arni
761443fffe Merge pull request #357 from haskell-servant/jkarni/remove-memoReqBody
Remove memoReqBody.
2016-02-05 20:05:49 +01:00
Andres Loeh
927009408b Small whitespace fix. 2016-01-28 11:08:22 +01:00
Andres Loeh
2934bac40c Small whitespace fix. 2016-01-28 11:07:59 +01:00
Andres Loeh
c532ecffd5 Small doc fix. 2016-01-28 11:07:36 +01:00
Julian K. Arni
1aeee3ef94 Remove memoReqBody. 2016-01-26 14:43:15 +01:00
Sönke Hahn
09b22452aa server/config: added more documentation 2016-01-21 17:58:50 +01:00
Sönke Hahn
df09f8616e config: remove HasConfig and make HasServer take config as a parameter 2016-01-21 17:58:50 +01:00
Sönke Hahn
2445855203 servant-server: renaming of type variable 2016-01-21 17:55:02 +01:00
Sönke Hahn
67315c4487 server: added Config machinery 2016-01-21 17:55:02 +01:00
Christian Marie
9c67267071 servant-server: fix comment typo 2016-01-19 11:06:38 +11:00
Julian K. Arni
5909a6df7a Fix rebase issues. 2016-01-07 13:47:08 +01:00
Julian K. Arni
c6071bfb02 Don't override status code on empty body. 2016-01-07 13:47:08 +01:00
Julian K. Arni
cda8bcf17c Simplify verb combinators.
Create a single 'Verb' combinator with parameters for status code and
        method. Make existing combinators type synonyms of 'Verb'.
2016-01-07 13:47:07 +01:00
Julian K. Arni
79d4f944a4 less OverlappingInstances noise 2016-01-04 13:09:11 -05:00
Julian K. Arni
9c12b7839b 7.8 routing fixes, -Wall, cleanup, changelog. 2015-10-26 16:56:46 +01:00
Andres Loeh
1398d1f5e1 More systematic approach to delayed checks.
This introduces a `Delayed` type in `RoutingApplication.hs` that
contains a handler together with delayed checks. There are several
blocks of delayed checks, so that we can ultimately execute them in the
order we desire.

The process is documented in more detail in `RoutingApplication.hs`.
2015-10-26 16:56:25 +01:00
Julian K. Arni
ccadba81ec Cleanup errorspec description of routing, changelog.
Review fixes
2015-10-26 16:55:13 +01:00
Julian K. Arni
a3b5652ab9 Refactor RouteResult.
Fix rerouting tests
        Fix 405 > 404 issue with Capture.
        Remove ServantErrWithPriority and Monoid instance
        More tests
        Update auth-combinator for routing changes
2015-10-26 16:54:49 +01:00
Julian K. Arni
afc76b8f6c Remove MatrixParam.
In servant, servant-server, and servant-client.
2015-10-13 21:37:07 +02:00