@@ -39,36 +39,34 @@ module Servant.Reflex
40------------------------------------------------------------------------------
40------------------------------------------------------------------------------
41import Control.Applicative
41import Control.Applicative
42+import Data.Monoid ((<>))
43+import qualified Data.Set as Set
44+import qualified Data.Text.Encoding as E
42import qualified Data.CaseInsensitive as CI
45import qualified Data.CaseInsensitive as CI
43import Data.Functor.Identity
46import Data.Functor.Identity
44−import qualified Data.Map as Map
45−import Data.Monoid ((<>))
46import Data.Proxy (Proxy (..))
47import Data.Proxy (Proxy (..))
47−import qualified Data.Set as Set
48+import qualified Data.Map as Map
48import Data.Text (Text)
49import Data.Text (Text)
49import qualified Data.Text as T
50import qualified Data.Text as T
50−import qualified Data.Text.Encoding as E
51import GHC.Exts (Constraint)
51import GHC.Exts (Constraint)
52import GHC.TypeLits (KnownSymbol, symbolVal)
52import GHC.TypeLits (KnownSymbol, symbolVal)
53−import Servant.API ((:<|>) (..), (:>), BasicAuth,
53+import Servant.API ((:<|>)(..),(:>), BasicAuth,
54− BasicAuthData, BuildHeadersTo (..),
54+ BasicAuthData, BuildHeadersTo(..),
55− Capture, Header, Headers (..),
55+ Capture, contentType, Header,
56− HttpVersion, IsSecure,
56+ Headers(..), HttpVersion, IsSecure,
57− MimeRender (..), MimeUnrender,
57+ MimeRender(..), MimeUnrender,
58− NoContent, QueryFlag, QueryParam',
58+ NoContent, QueryFlag, QueryParam,
59− QueryParams, Raw, ReflectMethod (..),
59+ QueryParams, Raw, ReflectMethod(..),
60 RemoteHost, ReqBody,
60 RemoteHost, ReqBody,
61− ToHttpApiData (..), Vault, Verb,
61+ ToHttpApiData(..), Vault, Verb)
63−import Servant.API.Description (Summary)
64import qualified Servant.Auth as Auth
62import qualified Servant.Auth as Auth
66import Reflex.Dom.Core (Dynamic, Event, Reflex,
64import Reflex.Dom.Core (Dynamic, Event, Reflex,
67− XhrRequest (..), XhrResponse (..),
65+ XhrRequest(..),
68− XhrResponseHeaders (..),
66+ XhrResponseHeaders(..),
69− attachPromptlyDynWith, constDyn, ffor,
67+ XhrResponse(..), attachPromptlyDynWith, constDyn, ffor, fmapMaybe,
71− performRequestsAsync)
68+ leftmost, performRequestsAsync,
72------------------------------------------------------------------------------
70------------------------------------------------------------------------------
73import Servant.Common.BaseUrl (BaseUrl(..), Scheme(..), baseUrlWidget,
71import Servant.Common.BaseUrl (BaseUrl(..), Scheme(..), baseUrlWidget,
74 showBaseUrl,
72 showBaseUrl,
@@ -329,19 +327,6 @@ instance HasClient t m sublayout tag
329 clientWithRouteAndResultHandler Proxy =
327 clientWithRouteAndResultHandler Proxy =
330 clientWithRouteAndResultHandler (Proxy :: Proxy sublayout)
328 clientWithRouteAndResultHandler (Proxy :: Proxy sublayout)
332−-- | Using a 'Summary' combinator in your API doesn't affect the client
334−instance (HasClient t m sublayout tag, KnownSymbol sym)
335− => HasClient t m (Summary sym :> sublayout) tag where
337− type Client t m (Summary sym :> sublayout) tag =
338− Client t m sublayout tag
340− clientWithRouteAndResultHandler Proxy =
341− clientWithRouteAndResultHandler (Proxy :: Proxy sublayout)
346-- | If you use a 'QueryParam' in one of your endpoints in your API,
331-- | If you use a 'QueryParam' in one of your endpoints in your API,
347-- the corresponding querying function will automatically take
332-- the corresponding querying function will automatically take
@@ -370,9 +355,9 @@ instance (HasClient t m sublayout tag, KnownSymbol sym)
370-- > -- 'getBooksBy Nothing' for all books
355-- > -- 'getBooksBy Nothing' for all books
371-- > -- 'getBooksBy (Just "Isaac Asimov")' to get all books by Isaac Asimov
356-- > -- 'getBooksBy (Just "Isaac Asimov")' to get all books by Isaac Asimov
372instance (KnownSymbol sym, ToHttpApiData a, HasClient t m sublayout tag, Reflex t)
357instance (KnownSymbol sym, ToHttpApiData a, HasClient t m sublayout tag, Reflex t)
373− => HasClient t m (QueryParam' mods sym a :> sublayout) tag where
358+ => HasClient t m (QueryParam sym a :> sublayout) tag where
375− type Client t m (QueryParam' mods sym a :> sublayout) tag =
360+ type Client t m (QueryParam sym a :> sublayout) tag =
376 Dynamic t (QParam a) -> Client t m sublayout tag
361 Dynamic t (QParam a) -> Client t m sublayout tag
378 -- if mparam = Nothing, we don't add it to the query string
363 -- if mparam = Nothing, we don't add it to the query string
@@ -622,3 +607,4 @@ type family HasCookieAuth xs :: Constraint where
622 HasCookieAuth '[] = CookieAuthNotEnabled
607 HasCookieAuth '[] = CookieAuthNotEnabled
624class CookieAuthNotEnabled
609class CookieAuthNotEnabled