Commit Graph

114 Commits

Author SHA1 Message Date
Oleg Grenrus
45c1cbdfd5 Refactor Stream stuff
- Introduce SourceT, which is simple variant of "correct `ListT`".
  There are another variants possible (like in `streaming`),
  but I'm not sure there's much real difference.

- Introduce `Codensity`. There's a flag if people don't want to depend
  on `kan-extensions`.

- `StreamGenerator` and `ResultStream` are both `SourceT`.
  `Stream` combinator in `servant-client` uses `Codensity` for CPS.

- Add servant-machines, servant-conduit, servant-pipes
- Add streaming cookbook: just code, no explanations.
- Add a script to run streaming 'benchmarks'
2018-11-05 15:48:47 +02:00
Oleg Grenrus
f9bcc15d0b Apply stylish-haskell on all modules 2018-06-29 23:36:39 +03:00
Alp Mestanogullari
fc3c6089b8 document hoistClient (haddocks, tutorial) 2018-04-04 01:48:48 +02:00
Alp Mestanogullari
9eb57a6119 add a test for hoistClient 2018-04-04 01:48:48 +02:00
Alp Mestanogullari
200311ee26 add hoistClient to HasClient class 2018-04-04 01:48:48 +02:00
Julian K. Arni
37482d69d7 Test that Stream combinator doesn't blow up memory. 2018-03-19 16:26:57 +01:00
Oleg Grenrus
454f53315f Remove catchServantError 2018-03-11 16:50:14 +02:00
Oleg Grenrus
f4fc2b321f Refactor servant-client-core Response+StreamingResponse 2018-01-31 09:26:28 +02:00
Michal Rus
e4bd07a907 Support http-client’s CookieJar in servant-client 2018-01-26 18:45:52 +02:00
Oleg Grenrus
cbd3862f24
Merge pull request #836 from gbaz/gb-streaming
Stream endpoint support for servant
2017-12-03 17:19:47 +02:00
Oleg Grenrus
a67cd56c1f Send Accept header in servant-client
Fixes #858. The bug was introduced in servant-client-core refactor
(servant-client-0.12).

See 8973cf56f1/servant-client/src/Servant/Common/Req.hs (L151-L179)
for the unbroken variant in servant-client-0.11
2017-11-11 00:06:25 +02:00
Gershom
90292e1f62 move statuscheck earlier on streaming response to give good error 2017-11-06 11:37:00 -05:00
Gershom
e75a3cc37b streaming client actually streams 2017-10-24 17:12:21 -07:00
Joshua McCartney
3fedbd097a Fix issue #821 2017-09-28 19:15:53 -04:00
Julian K. Arni
1a67d93c60 Use own throw/catch 2017-09-15 14:57:03 -04:00
Julian K. Arni
65c2cbb6a9 Fix 7.8.4 IsList Sequence issue
And other minor 7.8.4 issues.
2017-09-14 11:23:42 -04:00
Julian K. Arni
da8337809b Documentation fixes 2017-09-14 09:54:13 -04:00
Julian K. Arni
e8b9814168 Documentation and Reexport module 2017-09-14 09:54:13 -04:00
Julian K. Arni
6be78e0b38 Documentation 2017-09-14 09:54:13 -04:00
Julian K. Arni
5bd9d253ce Almost compiling test 2017-09-14 09:54:13 -04:00
Julian K. Arni
75ea91c34d Fix some tests 2017-09-14 09:54:13 -04:00
Julian K. Arni
f44ab3d083 Cleanup 2017-09-14 09:54:13 -04:00
Julian K. Arni
05db359296 Compiling HttpClient 2017-09-14 09:54:13 -04:00
Julian K. Arni
35599d8b38 More reorganization 2017-09-14 09:54:13 -04:00
Julian K. Arni
95fac329a6 Rewrite servant-client.
This commit begins the reorganization of the servant-client project
    so as to allow multiple backends, and also begins some much-needed
    refactoring of the servant-client code.
2017-09-14 09:54:13 -04:00
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
Catherine Galkina
ec0431d930 Add instances for new combinators 2017-06-08 18:27:36 +03:00
David Turner
0bbc4f98a4 Rename EmptyAPIClient to EmptyClient 2017-05-16 16:00:15 +00:00
David Turner
178f05595a Better docs for EmptyAPIClient 2017-05-16 11:06:37 +00:00
David Turner
4c64c13af0 Add EmptyAPIClient and instance HasClient EmptyAPI 2017-05-16 10:06:48 +00: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
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
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
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
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
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
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