Oleg Grenrus
6533d4bee5
Void -> TypeError
...
This doesn't work on GHC-8.0. I have trouble finding a ticket though.
See
https://ghc.haskell.org/trac/ghc/wiki/Proposal/CustomTypeErrors#DesignquestionsRAE
2018-01-22 18:40:23 +02:00
Oleg Grenrus
43895c83f9
Add two HasServer instances which won't ever exist
...
Resolves https://github.com/haskell-servant/servant/issues/887
2018-01-20 18:35:57 +02:00
Gershom
85cf8d1c60
Merge branch 'master' into gb-streaming
2017-11-04 00:15:35 -04:00
gbaz
da98c94e2f
refactor servant.server.internal to consolidate functions ( #837 )
...
refactor servant.server.internal to consolidate functions
2017-10-28 20:17:24 +02:00
Gershom
9a2ac6f4dd
HasClient instance for Stream
2017-10-20 15:09:11 -04:00
Gershom
d4168aa3ae
first round of changes
2017-10-19 17:41:49 -04:00
Gershom
c5e04514f9
initial checkin
2017-10-18 18:43:43 -04:00
Oleg Grenrus
15cc4f55dd
Update docs related to hoistServer
2017-10-01 20:24:22 +03:00
Vaibhav Sagar
1a10972904
Update servant-server/src/Servant/Server/Internal.hs
...
s/taylor/tailor
2017-09-17 11:40:12 +08:00
Oleg Grenrus
24af338dea
Add hoistServer to HasServer
2017-09-14 12:04:34 +03:00
Catherine Galkina
ec0431d930
Add instances for new combinators
2017-06-08 18:27:36 +03:00
David Turner
a3c5f17749
Generalise type of emptyServer
so it can be Enter
ed
2017-05-17 05:17:08 +00:00
David Turner
f3ac10a1c4
Add missing DeriveDataTypeable
2017-05-16 16:26:47 +00:00
David Turner
f5d9983381
Rename emptyAPIServer to emptyServer
2017-05-16 15:59:41 +00:00
David Turner
6feb27e7b2
Rename EmptyAPIServer to EmptyServer and add deriving clause
2017-05-16 15:53:19 +00:00
David Turner
62560079b1
Add docs for serving an EmptyAPI
2017-05-16 11:09:54 +00:00
David Turner
94483d586c
Add instance HasServer EmptyAPI
2017-05-16 10:06:25 +00:00
Alexander Vieth
6389134423
Change to ServerT Raw m = Tagged m Application
...
For uniformity of Enter.
Previously, `ServerT Raw m ~ Application`. Seems reasonable, but has the
unfortunate consequence of making `Enter` useless for `Raw` routes.
With this change `Tagged m Application` is retagged by `Enter`.
2017-05-15 19:54:43 +03:00
Philipp Balzarek
08786aadbe
Check for parse errors in HasServer Header instance
2017-04-06 14:52:55 +02:00
Oleg Grenrus
58e931f48a
Resolve todos
2017-01-19 11:26:50 +02:00
Philipp Balzarek
3a0cbdd0f6
throw 400 on query parameter parse failure
2017-01-19 11:09:30 +02:00
Oleg Grenrus
d4fe0e582a
Fix stylistic issues
2017-01-19 00:57:31 +02:00
Oleg Grenrus
2caabad61a
Expose ResourceT, fix the test
2017-01-19 00:57:31 +02:00
Oleg Grenrus
bc6ff20f4d
Use resourcet for resource managment
2017-01-19 00:57:31 +02:00
Alp Mestanogullari
bc13d5cd3e
warning free
2017-01-17 23:10:29 +02:00
Alp Mestanogullari
92786feead
add some basic tests for the cleanup machinery in Delayed
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
5d1f03ba1a
use an ioref to store clean up actions instead of a field in Delayed, allowing early clean up registration
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
7fb11dae3c
make cleanup in Delayed more resistant to exceptions
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
6ab0296d62
fix a warning
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
124c6de1eb
add a field in Delayed that lets us specify a clean up action that can use the result of bodyD to perform some IO clean up operation
2017-01-17 22:29:36 +02:00
Oleg Grenrus
5168157757
Make Handler a newtype
2017-01-16 12:18:49 +02:00
Yusuke Sangenya
d2a51396cc
add HTTP status code 422
2016-12-03 16:44:34 +09:00
Sönke Hahn
3f6ecbb77b
add err418
2016-10-24 10:42:48 -04:00
Julian K. Arni
501212e6b9
Review fixes
2016-09-12 20:40:03 -03:00
Oleg Grenrus
f44b336bf1
Support http-api-data-0.3
2016-09-12 18:34:00 -03:00
Jonathan Lange
c79a254b36
servant-server support for CaptureAll
2016-07-11 14:46:31 +01:00
Sönke Hahn
5effdfdbbb
Rename type variables 'layout' and 'sublayout' to 'api'
2016-07-03 22:46:46 +08:00
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
Matthias Fischmann
8f01efd599
Export tweakResponse from non-internal module; better haddock comment.
2015-10-12 21:58:06 +02:00
Matthias Fischmann
d106ed9c9f
Use Functor class for functor business.
2015-10-12 21:47:47 +02:00
Matthias Fischmann
96f10add65
fmapRouter.
2015-10-12 17:06:43 +02:00
Nickolay Kudasov
63a36e3b4e
Fix warning
2015-10-08 00:57:18 +03:00
Nickolay Kudasov
40d2c68897
Use http-api-data package instead of ToText/FromText
2015-10-08 00:38:47 +03:00
Julian K. Arni
2be621871d
Document octet-stream default RFC.
2015-09-15 17:24:37 +02:00
Index Int
f2f7b061d2
Drop EitherT
in favor of ExceptT
2015-09-12 15:11:24 +03:00
Julian K. Arni
6eb7add53a
stylish haskell changes
...
And import fix.
2015-08-18 00:07:12 +02:00
Julian K. Arni
98b6e85128
Contributing
2015-08-17 23:50:42 +02:00
Brandon Martin
050aa21b9d
Response with Head to all Get requests
...
Signed-off-by: Brandon Martin <zmbmartin@gmail.com>
2015-08-01 07:58:56 -06:00
Alp Mestanogullari
f39d57c6b3
add HttpVersion, IsSecure, RemoteHost and Vault combinators with instances for all interpretations (all but the server ones being 'ignore that combinator')
...
tighter version bounds for network
cleanup
document the new combinators
servant-server: add some tests for HttpVersion, IsSecure, RemoteHost and Vault
update changelogs
address Julian's feedback
remove vault test in servant-server
servant-server tests: -Werror friendly
2015-07-10 14:00:01 +02:00
Andres Loeh
31b12d4bf4
Refactoring: abstracting common parts of method handlers.
...
This change makes an attempt of abstracting out some of the common
functionality found in the handlers for the different request methods.
There's still a bit of code duplication between the cases for headers
and no headers and empty responses. But it's a significant relative
improvement already.
2015-06-04 13:14:51 +02:00
Andres Loeh
eb86a82105
Refactoring: one module per concept.
...
The main `Server.Internal` module was getting a bit large for my taste.
It now contains just the instances. All the administrative utilities
are in their own dedicated modules.
2015-06-04 13:14:31 +02:00