Commit Graph

296 Commits

Author SHA1 Message Date
Arnaud Bailly
b592b51ed8 provide convenience functions for ClientM-based clients 2017-09-14 09:54:13 -04:00
Arnaud Bailly
7480076c91 cleanup compiler's warnings 2017-09-14 09:54:13 -04:00
Arnaud Bailly
5e2c48b08f expose client runner as a typeclass with base implementation #798
* defined a typeclass abstracting the execution of a query
* provide ClientM-based instances for this typeclass
* changed signature of client and clientWithRoute to add proxy for
  context
* updated tests
2017-09-14 09:54:13 -04:00
Arnaud Bailly
175c9532f1 [wip] expose client runner as a typeclass 2017-09-14 09:54:13 -04:00
Arnaud Bailly
2665693529 extract module for http-client 2017-09-14 09:54:13 -04:00
Oleg Grenrus
50be3a263b Merge pull request #767 from fierce-katie/docs-combinators
Description and Summary combinators
2017-08-16 15:31:12 +03:00
Oleg Grenrus
213620e56a Fix cabal category 2017-07-25 10:46:57 +03:00
Oleg Grenrus
70aae4c5c0 Relax bound for http-media in servant-client 2017-06-27 21:59:01 +03:00
Catherine Galkina
ec0431d930 Add instances for new combinators 2017-06-08 18:27:36 +03:00
Oleg Grenrus
8959d61173 GHC-8.2.1 stack.yaml 2017-06-07 17:29:15 +03:00
Oleg Grenrus
ec930ac9a8 Release 0.11 2017-05-24 08:02:56 +03:00
David Turner
0bbc4f98a4 Rename EmptyAPIClient to EmptyClient 2017-05-16 16:00:15 +00:00
David Turner
f5d9983381 Rename emptyAPIServer to emptyServer 2017-05-16 15:59:41 +00:00
David Turner
178f05595a Better docs for EmptyAPIClient 2017-05-16 11:06:37 +00:00
David Turner
e60bdadead Demonstrate that a client for EmptyAPI pattern-matches EmptyAPIClient 2017-05-16 10:21:37 +00:00
David Turner
4c64c13af0 Add EmptyAPIClient and instance HasClient EmptyAPI 2017-05-16 10:06:48 +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
Oleg Grenrus
acbcebc1d3 Fix Show UrlReq 2017-05-15 19:06:06 +03:00
Oleg Grenrus
4ae8b1898f Merge pull request #740 from stevana/client/include-request-in-failure-response
Include the request that failed in FailureResponse.
2017-05-15 12:32:45 +03:00
Oleg Grenrus
018a38cc93 Merge pull request #696 from edsko/pr/escape-capture
Make sure path components get escaped
2017-05-14 21:01:53 +03:00
Oleg Grenrus
590c4cb25c Bump lower bound for http-api-data 2017-05-14 20:16:38 +03:00
Oleg Grenrus
27facba0e8 Trim trailing whitespace 2017-05-14 19:26:25 +03:00
Stevan Andjelkovic
29c9d85ade Use BaseUrl and Req instead of Request. 2017-05-05 17:05:55 +02:00
Stevan Andjelkovic
bf9c84eccb Two failed responses can be equal even though they don't come from
the same request.
2017-05-05 15:55:21 +02:00
Stevan Andjelkovic
b8de9c8527 Include the request that failed in FailureResponse. 2017-05-05 15:31:38 +02:00
Oleg Grenrus
f4b6144a11 Allow generics-sop-0.3 2017-04-29 15:39:25 +03:00
Oleg Grenrus
c5cd6a2172 Allow semigroupoids-5.2 2017-04-23 21:02:51 +03:00
Oleg Grenrus
e49d491164 Allow aeson-1.2 2017-04-17 21:35:20 +03:00
Edsko de Vries
507f021919 Make sure path components get escaped
The derived client for an API containing `Capture` has a bug: it does not
escape characters, so that if the string is "a/b", the URL becomes
`".../a/b/..."` instead of `".../a%2Fb/..."`, causing the corresponding servant
server to return a 404.

This relies on https://github.com/fizruk/http-api-data/pull/47
2017-02-07 16:51:56 +01:00
Oleg Grenrus
8a3ecb2ebc Classify changelog into breaking and other changes 2017-02-01 09:06:30 +02:00
Oleg Grenrus
736918a694 Tweaks for 0.10 (#694)
* Add Servant category to in-repo packages

* Add version table
2017-01-30 19:12:39 +02:00
Oleg Grenrus
2fd97570f0 Update changelog for 0.10 (#691) 2017-01-30 08:45:58 +02:00
Oleg Grenrus
93df8d22df Bump version to 0.10 2017-01-26 20:10:01 +02:00
Oleg Grenrus
6fafaec51a Change Semigroup (ClientM a) to Alt ClientM 2017-01-20 14:26:26 +02:00
Oleg Grenrus
fdf86b0e15 Add Semigroup instances 2017-01-19 20:11:54 +02:00
Catherine Galkina
af1b267726 Fix servant-client tests after rebase 2017-01-17 16:34:30 +03:00
Catherine Galkina
aa4b10c9ca Add comments for GClientLikeP and GClientLikeL classes 2017-01-17 16:29:24 +03:00
Catherine Galkina
9d52cff1bb Fix ghc-7.8.4 build 2017-01-17 16:29:24 +03:00
Catherine Galkina
01324754da Update comment in Servant.Client.Generic 2017-01-17 16:29:24 +03:00
Catherine Galkina
5fa99bee93 Expand left-nested APIs by default 2017-01-17 16:29:24 +03:00
Catherine Galkina
d128faee4d Update CHANGELOG 2017-01-17 16:29:24 +03:00
Catherine Galkina
06217ace66 Fix typos in examples 2017-01-17 16:29:24 +03:00
Catherine Galkina
682d7ead5c Update example in Servant.Client.Generic 2017-01-17 16:29:24 +03:00
Catherine Galkina
3cc667892c Add tests for Servant.Client.Generic 2017-01-17 16:29:24 +03:00
Catherine Galkina
31e1ceb6d0 Add Servant.Client.Generic module 2017-01-17 16:29:24 +03:00
Oleg Grenrus
5168157757 Make Handler a newtype 2017-01-16 12:18:49 +02:00
Oleg Grenrus
cfaa7a06be Merge pull request #665 from phadej/client-monad-control
Add MonadBaseControl IO ClientM instance
2017-01-16 10:25:35 +02:00
Oleg Grenrus
e6206cc51e Add more changelog entries 2017-01-16 10:11:38 +02:00
Oleg Grenrus
6faa742c4a Update changelog 2017-01-16 10:02:54 +02:00
Oleg Grenrus
b548f8df86 Add MonadBaseControl IO ClientM instance 2017-01-16 09:51:39 +02:00
Andres Loeh
bc04d120ec Allow more flexbility in setting the request body.
Rather than hard-coding the `RequestBodyLBS` constructor and be
limited to lazy bytestrings, the new function `setReqBody` just
takes any value of type `RequestBody`.

The old function `setRQBody` has been renamed to `setReqBodyLBS`.
The old name is still available, but deprecated.

The change has the advantage the we can define new servant API
combinators that use streaming request bodies such as for example
constructed by the `streamFile` function in http-client.

The behaviour for the existing `ReqBody` API combinator is
unaffected by this change.
2017-01-12 14:08:50 +01:00
Oleg Grenrus
1f00a68937 Support aeson-1.1 2017-01-01 20:02:56 +02:00
Oleg Grenrus
1abf84feca servant-client asks for any content-type in Accept contentTypes ne-list 2016-11-10 21:22:00 +02:00
Julian K. Arni
4fd31a60fb Bump version.
To 0.9.1.1
2016-10-27 13:25:27 +02:00
Hamish Mackenzie
49931913c9 Derive MonadThrow and MonadCatch for ClientM 2016-10-27 22:32:41 +13:00
Julian K. Arni
9e809a0756 Bump version.
To 0.9.1.
2016-10-26 17:35:57 +02:00
Sönke Hahn
79f53cef3e servant-client: use base-compat in order to use less CPP 2016-10-17 11:52:40 -04:00
Julian K. Arni
3ddf225cec Bump version.
To 0.9.0.1.
2016-10-09 22:52:49 +02:00
VyacheslavHashov
c0c1f0fa25 Fixed haddocs in correspondence with the change ClientM to ReaderT 2016-10-09 16:19:14 -04:00
Sönke Hahn
bc1a3e7faa bump version 2016-09-17 11:47:57 -04:00
Sönke Hahn
d7d22b8050 tweake changelogs for the upcoming release 2016-09-17 11:46:26 -04:00
Julian K. Arni
501212e6b9 Review fixes 2016-09-12 20:40:03 -03:00
Julian K. Arni
0870b3b2f5 Remove FromFormUrlEncoded and ToFormUrlEncoded.
In favor of FromForm and ToForm from the new version of http-api-data.
2016-09-12 18:34:18 -03:00
Oleg Grenrus
f44b336bf1 Support http-api-data-0.3 2016-09-12 18:34:00 -03:00
Christian Klinger
7a7f7d7cf5 changed ClientM to be a Reader of ClientEnv 2016-09-08 00:17:13 +02:00
Julian K. Arni
bf824a3889 Bump version to 0.8.1 2016-09-02 13:09:47 -03:00
Sönke Hahn
b1f143010e servant-client: fix compilation when building with http-client < 0.4.30 2016-08-14 20:27:50 +02:00
Oleg Grenrus
6999b00297 Support aeson-1 2016-08-07 20:12:09 +03:00
Oleg Grenrus
197ed0548a Use parseRequest 2016-07-18 14:40:05 +02:00
Jonathan Lange
d945c99f82 Test whole list in CaptureAll client tests 2016-07-11 14:47:05 +01:00
Jonathan Lange
7fb9a95711 servant-client support for CaptureAll 2016-07-11 14:46:31 +01:00
Sönke Hahn
8eb412ff23 bump version 2016-07-10 17:21:36 +02:00
Sönke Hahn
d45c7c5897 support http-client-0.5 2016-07-09 18:36:00 +02:00
Oleg Grenrus
a7a3294752 Add bounds to servant, servant-server and servant-clients
(cherry picked from commit a0d5ed9aea)
2016-07-09 18:33:19 +02:00
Oleg Grenrus
dc9afe6405 Add upper bounds http-client <0.5 2016-07-05 12:27:30 +03:00
Sönke Hahn
5effdfdbbb Rename type variables 'layout' and 'sublayout' to 'api' 2016-07-03 22:46:46 +08:00
Julian K. Arni
023368c396 CPP deprecated parseUrl function. 2016-07-03 22:43:52 +08:00
Julian K. Arni
bd3670f54d Remove host param from servant-client README. 2016-05-25 17:38:25 +02:00
Julian Arni
ea36656dcd Merge pull request #505 from haskell-servant/jkarni/reexport-application
Re-export Application.
2016-05-12 10:38:46 +02:00
Julian K. Arni
211254512e Re-export Application. 2016-05-11 12:17:36 +02:00
Sönke Hahn
d8a4cce691 version bump 2016-05-11 12:09:25 +08:00
Sönke Hahn
5579c21050 added changelog entries for 0.7.1 2016-05-11 12:09:25 +08:00
Julian K. Arni
7174f5185d Changelog updates for GHC 8.0 support. 2016-05-10 22:45:29 +02:00
Oleg Grenrus
008f2434ee Add -Wno-redundant-constraints 2016-05-10 19:09:59 +03:00
Sönke Hahn
e0216781b0 set the homepage to readthedocs 2016-04-22 14:12:21 +08:00
Sönke Hahn
29be5761ce servant-client: add Eq instance for ServantError 2016-04-21 15:27:08 +08:00
Sönke Hahn
b26bbfccda travis: enable -Wall -Werror 2016-04-21 13:06:10 +08:00
Alexander Bondarenko
b13ecd6098
Add missing changelogs and readme to cabal in servant, servant-client. 2016-04-16 16:51:38 +03:00
Sönke Hahn
ab6131d733 version bump 2016-04-15 18:35:17 +08:00
Luke Cycon
21546991af Introduce a Handler alias for ExceptT ServantErr IO
Fixes #434
2016-04-11 22:27:29 -07:00
Sönke Hahn
c2c9bef571 version bump 2016-04-07 18:24:29 +08:00
Sönke Hahn
933a2c4445 re-export ClientM from Servant.Client. 2016-04-05 17:51:25 +08:00
Sönke Hahn
14a8139cbe version bump 2016-04-04 16:22:11 +08:00
Sönke Hahn
2367ee9965 put 0.6 into changelogs 2016-04-04 16:22:11 +08:00
Alexander Kjeldaas
4f558971d1 Removed FromText references from docs. 2016-04-01 22:56:19 +02:00
mbg
6fd1e21580 Updated changelog to reflect that client no longer requires BaseUrl and Manager arguments 2016-03-30 22:51:08 +01:00
mbg
9e1ba9221d Manager and BaseUrl are now explicit parameters of all client functions, instead of ReaderTs 2016-03-30 22:41:39 +01:00
mbg
41129e98b3 Removed GetNth and GetLast type classes 2016-03-28 18:01:53 +01:00
mbg
316737c16d Updated documentation in Client.hs to reflect the changes to the client function 2016-03-28 14:56:50 +01:00
mbg
89b0758dc8 Changed servant-client tests to reflect the changes to the client function 2016-03-28 14:52:33 +01:00
mbg
7379b7486a Moved BaseUrl and Manager parameters from the client function to the Client type as discussed in #428 2016-03-28 14:51:07 +01:00
Julian K. Arni
101e138a4b Cut 0.5 in changelogs 2016-03-19 13:26:13 +01: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
cd31b20cd8 Update CHANGELOG for generalized authentication support 2016-03-09 22:30:34 +01:00
aaron levin
23da4879ef Add general auth support to servant-client 2016-03-09 22:30:34 +01:00
aaron levin
546adc391a basic-auth: config -> context 2016-03-08 23:28:27 +01:00
aaron levin
1e703be15f replace serve with serveWithConfig 2016-03-08 23:13:05 +01:00
aaron levin
60a536382f Update CHANGELOG for basic authentication support 2016-03-08 23:13:05 +01:00
aaron levin
d989d15e4c Add basic-auth support to servant-client 2016-03-08 23:13:05 +01:00
Sönke Hahn
8ef4d4543b renaming: Config -> Context 2016-03-07 23:12:24 +08:00
Julian K. Arni
f137972e5d Add 'serveWithConfig'.
And keep the old signature for 'serve'
2016-02-18 16:36:24 +01:00
Daniel Gasienica
e1947b9b40 Fix minor typo: succesful --> successful 2016-02-17 21:13:31 -08: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
2176fecfda config: added instances for all interpretations 2016-01-21 17:55:02 +01:00
Sönke Hahn
67315c4487 server: added Config machinery 2016-01-21 17:55:02 +01:00
Julian K. Arni
be36e5b313 Change copyright to servant contributors 2016-01-20 16:58:29 +01:00
Sönke Hahn
ac930ef198 ComprehensiveAPI: add some comments (and minor tweaks) 2016-01-18 20:06:45 +01:00
Sönke Hahn
b20b8d9770 add HasClient instance for HttpVersion 2016-01-18 12:28:29 +01:00
Sönke Hahn
e5974ec94d add ComprehensiveAPI to test whether we're missing instances
Some of the combinators are commented atm, because we *are* missing combinators.
2016-01-18 12:28:29 +01:00
Julian K. Arni
f1b6603c52 Review fixes 2016-01-08 18:03:28 +01:00
Julian K. Arni
783a849c67 Make NoContent still take an arg.
For consistency with other combinators, and to make using headers
        easier.
2016-01-07 14:30: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
Luigy Leon
17fcc25d87 add include header files to extra-source-files 2016-01-04 23:05:05 -05:00
Julian K. Arni
79d4f944a4 less OverlappingInstances noise 2016-01-04 13:09:11 -05:00
Philipp Kant
da5c273640 Relaxed upper version bound for http-api-data ...
... in order to include http-api-data-0.2.1, which is currently in LTS
Haskell (lts-3.16).
2015-12-03 14:13:50 +01:00
Simon Hengel
4e53e2083b Use tinc on travis 2015-11-05 09:32:13 +08:00
Julian K. Arni
c22b5d1938 Changelogs for matrix params 2015-10-13 21:46:52 +02:00
Julian K. Arni
40686be83a Rebase fixes 2015-10-13 21:45:22 +02:00
Julian K. Arni
2a894d861c -Wall fixes 2015-10-13 21:38:13 +02:00
Julian K. Arni
afc76b8f6c Remove MatrixParam.
In servant, servant-server, and servant-client.
2015-10-13 21:37:07 +02:00
Julian K. Arni
d9594e24b4 Rebase fix. 2015-10-11 21:47:31 +02:00
Julian K. Arni
ed3f2f1811 Update changelog 2015-10-11 21:12:05 +02:00
Julian K. Arni
c2a06bc090 More generous acceptable status codes for servant-client 2015-10-11 21:12:05 +02:00
Alp Mestanogullari
444a72eac6 Merge pull request #245 from arianvp/servant-client-hspec-discover-fix
Fix servant-client tests to properly use hspec-discover.
2015-10-10 02:40:24 +02:00
Arian van Putten
a08e644333 Add OVERLAPPING pragma to instances in ClientSpec 2015-10-09 00:48:03 +02:00
Julian Arni
3ce7c9758a Merge pull request #250 from fizruk/http-api-data
Use http-api-data
2015-10-08 23:16:09 +01:00
Nickolay Kudasov
2a7d110c17 Add version bounds for http-api-data 2015-10-08 16:21:02 +03:00
Julian K. Arni
7529d7f776 getLast (and last missing servant-client test) 2015-10-08 12:09:23 +02:00
Nickolay Kudasov
dfb5cc7713 Update changelogs 2015-10-08 01:15:30 +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
110196e23f Fix path concatenation, Eq instance, for BaseUrl 2015-10-07 21:07:07 +02:00
Arian van Putten
568254d5c7 Add entry to changelog 2015-10-07 20:02:46 +02:00
Julian K. Arni
47f4cec53b Cleanup BaseUrl tests 2015-10-07 18:01:47 +02:00
Julian K. Arni
59d8824888 remove 'hspec' call in servant-client tests 2015-10-07 17:52:23 +02:00
Arian van Putten
fce1c8d2a4 WIP: Work on fixing servant-client tests 2015-10-06 14:32:25 +02:00
Arian van Putten
b389179590 Modify BaseUrl tests and add some new BaseUrl tests to check if paths are correctly used 2015-10-05 09:44:37 +02:00
Arian van Putten
8cf4acf2fc Fix servant-client tests to properly use hspec-discover.
For some reason hspec-discover wasn't enabled for servant-client,
causing test cases to be skipped and fasely reporting servant-client as
test-passing whilst it was actually supposed to fail the tests.

For example, we redefined BaseUrl recently to have a path field, but the
tests don't reflect that yet but passed anyway. Because the test case
wasn't even discovered and run.
2015-10-05 00:51:32 +02:00
Julian K. Arni
cd7906d72e Changelog updates and 7.8 fixes. 2015-09-28 18:24:27 +02:00
Julian K. Arni
de447dfe22 Pass in Manager as argument to 'client' 2015-09-28 16:34:53 +02:00