@@ -14,6 +14,7 @@ import Control.Concurrent
14import Control.Applicative (liftA2, liftA3)
14import Control.Applicative (liftA2, liftA3)
15import Control.Monad (join)
15import Control.Monad (join)
16import Control.Monad.IO.Class (MonadIO, liftIO)
16import Control.Monad.IO.Class (MonadIO, liftIO)
17import Data.Bifunctor (first)
18import Data.Bifunctor (first)
18import qualified Data.ByteString.Lazy.Char8 as BL
19import qualified Data.ByteString.Lazy.Char8 as BL
19import qualified Data.Map as Map
20import qualified Data.Map as Map
@@ -26,6 +27,8 @@ import qualified Data.Text as T
26import qualified Data.Text.Encoding as TE
27import qualified Data.Text.Encoding as TE
27import Data.Traversable (forM)
28import Data.Traversable (forM)
28import Language.Javascript.JSaddle.Monad (JSM, MonadJSM)
29import Language.Javascript.JSaddle.Monad (JSM, MonadJSM)
30+import qualified Language.Javascript.JSaddle as JS
31+import Language.Javascript.JSaddle.Types (JSVal)
29import Reflex.Dom hiding (tag)
32import Reflex.Dom hiding (tag)
30import Servant.Common.BaseUrl (BaseUrl, showBaseUrl,
33import Servant.Common.BaseUrl (BaseUrl, showBaseUrl,
31 SupportsServantReflex)
34 SupportsServantReflex)
@@ -347,23 +350,29 @@ bytesToPayload = TE.decodeUtf8 . BL.toStrict
347-- , fmap (uncurry RequestFailure) badReq
350-- , fmap (uncurry RequestFailure) badReq
351performRequestsCT
353performRequestsCT
352− :: (SupportsServantReflex t m,
354+ :: ( SupportsServantReflex t m
353− MimeUnrender ct a, Traversable f)
355+ -- , MimeUnrender ct a
354 => Proxy ct
359 => Proxy ct
356 -> Dynamic t (f (Req t))
361 -> Dynamic t (f (Req t))
357 -> Dynamic t BaseUrl
362 -> Dynamic t BaseUrl
358 -> Event t tag
363 -> Event t tag
359 -> m (Event t (f (ReqResult tag a)))
364 -> m (Event t (f (ReqResult tag a)))
360−performRequestsCT ct reqMeth reqs reqHost trigger = do
365+performRequestsCT _ reqMeth reqs reqHost trigger = do
361 resps <- performRequests reqMeth reqs reqHost trigger
366 resps <- performRequests reqMeth reqs reqHost trigger
362− let decodeResp x = first T.pack .
367+ -- let decodeResp x = first T.pack .
363− mimeUnrender ct .
368+ -- mimeUnrender ct .
364− BL.fromStrict .
369+ -- BL.fromStrict .
365− TE.encodeUtf8 =<< note "No body text"
370+ -- TE.encodeUtf8 =<< note "No body text"
371+ let decodeResp x = first T.pack
372+ . note "Failed to decode"
366− (_xhrResponse_responseText x)
375+ =<< note "No body text" (_xhrResponse_responseText x)
367 return $ fmap
376 return $ fmap
368 (\(t,rs) -> ffor rs $ \r -> case r of
377 (\(t,rs) -> ffor rs $ \r -> case r of
369 Left e -> RequestFailure t e
378 Left e -> RequestFailure t e
@@ -393,7 +402,7 @@ evalResponse
393 :: (XhrResponse -> Either Text a)
402 :: (XhrResponse -> Either Text a)
394 -> (tag, XhrResponse)
403 -> (tag, XhrResponse)
395 -> ReqResult tag a
404 -> ReqResult tag a
396−evalResponse decode (tag, xhr) =
405+evalResponse decodeRes (tag, xhr) =
397 let okStatus = _xhrResponse_status xhr < 400
406 let okStatus = _xhrResponse_status xhr < 400
398 errMsg = fromMaybe
407 errMsg = fromMaybe
399 ("Empty response with error code " <>
408 ("Empty response with error code " <>
@@ -403,7 +412,7 @@ evalResponse decode (tag, xhr) =
403 then either
412 then either
404 (\e -> ResponseFailure tag e xhr)
413 (\e -> ResponseFailure tag e xhr)
405 (\v -> ResponseSuccess tag v xhr)
414 (\v -> ResponseSuccess tag v xhr)
406− (decode xhr)
415+ (decodeRes xhr)
407 else ResponseFailure tag errMsg xhr
416 else ResponseFailure tag errMsg xhr
408 in respPayld
417 in respPayld