git.iko.soy/typeable/servant-reflex
on master help sign in
Drop debugging printfs
commita1618c243df86d8b9b3a580e807302f4a448656a authorGreg Hale <imalsogreg@gmail.com> dateWed 5 Apr 2017, 17:07 (10 years ago) parent9de4301
6 files changed+16−24
exec/API.hs+7−4 exec/Example.hs+1−1 overrides.nix+2−2 src/Servant/Common/Req.hs−14 testserver/Main.hs+1−1 testserver/tr.nix+5−2
exec/API.hs+7−4
@@ -18,14 +18,17 @@ instance FromJSON Question where
1818 parseJSON (Object v) = Question <$> v .: "question"
1919 parseJSON x = typeMismatch "Couldn't find key 'question'" x
2020
21−newtype Answer = Answer { unAnswer :: Text } deriving (Show)
21+data Answer = Answer {
22+ answer :: Text
23+ , certainty :: [Text]
24+ } deriving (Show)
2225
2326instance ToJSON Answer where
24− toJSON (Answer txt) = object ["answer" .= txt]
27+ toJSON (Answer txt crt) = object ["answer" .= txt, "certainty" .= crt]
2528
2629instance FromJSON Answer where
27− parseJSON (Object v) = Answer <$> v .: "answer"
28− parseJSON x = typeMismatch "Couldn't find key 'answer'" x
30+ parseJSON (Object v) = Answer <$> v .: "answer" <*> v .: "certainty"
31+ parseJSON x = typeMismatch "Parse error" x
2932
3033
3134-- | API spec for server, client, and docs
exec/Example.hs+1−1
@@ -175,7 +175,7 @@ run = mdo
175175 let dQ = Right . Question <$> traceDyn "will send: " txt
176176 rr <- qna dQ ev
177177 el "p" $
178− dynText =<< holdDyn "No Answer" (unAnswer <$> fmapMaybe reqSuccess rr)
178+ dynText =<< holdDyn "No Answer" (T.pack . show <$> fmapMaybe reqSuccess rr)
179179
180180showXhrResponse :: XhrResponse -> Text
181181showXhrResponse (XhrResponse stat stattxt rbmay rtmay respHeaders) =
overrides.nix+2−2
@@ -7,7 +7,7 @@ let
77in
88reflex-platform.ghcjs.override {
99 overrides = self: super: {
10− # servant = dc (self.callPackage (c2n deps/servant/servant) {});
11− # http-api-data = dc (self.callPackage (c2n deps/http-api-data) {});
10+ servant = dc (self.callPackage (c2n deps/servant/servant) {});
11+ http-api-data = dc (self.callPackage (c2n deps/http-api-data) {});
1212 };
1313}
src/Servant/Common/Req.hs−14
@@ -401,21 +401,9 @@ foreign import javascript unsafe "console.log($1); $r = JSON['parse']($1);"
401401
402402rawDecode :: (FromJSON a) => T.Text -> Maybe a
403403rawDecode bs = do
404− -- Below copied from Reflex.Dom.WebSocket.Foreign
405− -- tmp <- Just $ unsafePerformIO $ putStrLn ("bs: " ++ BS.unpack bs)
406− -- error ("bs: " ++ BS.unpack bs)
407− -- let (b, off, len) = fromByteString bs
408− -- x = return $ js_dataView off len $ jsval $ getArrayBuffer b :: _
409− -- tmp <- error (BS.unpack bs)
410−
411− -- let jsv = if BS.length bs == 0
412− -- then unsafePerformIO $ jsval . getArrayBuffer <$> create 0
413− -- else js_dataView off len $ jsval $ getArrayBuffer b
414404
415405 let jsv = T.textToJSString bs
416406
417− -- let jsv = _ bs
418− -- TODO pFromJSVal to avoid unsafePerformIO
419407 let res = unsafePerformIO $ try $ aesonFromJSVal $ js_jsonParse $ jsval jsv
420408 case res of
421409 Left (_e :: SomeException) -> Nothing
@@ -429,8 +417,6 @@ rawDecode bs = do
429417-- copied from http://lpaste.net/raw/353535 Thanks ncl28!
430418aesonFromJSVal :: JSVal -> IO (Maybe A.Value)
431419aesonFromJSVal r = do
432− putStrLn "Hello"
433− print $ jsonTypeOf r
434420 case jsonTypeOf r of
435421 JSONNull -> return (Just A.Null)
436422 JSONInteger -> liftM (A.Number . flip scientific 0 . (toInteger :: Int -> Integer))
testserver/Main.hs+1−1
@@ -68,7 +68,7 @@ server = return () :<|> return 100 :<|> sayhi :<|> dbl :<|> multi :<|> qna :<|>
6868 liftIO $ do
6969 putStrLn $ "qna got: " ++ show q
7070 T.putStrLn $ unQuestion q
71− return $ Answer $ unQuestion q
71+ return $ Answer (unQuestion q) ["Hi", "a", "test",""]
7272
7373-- Turn the server into a WAI app. 'serve' is provided by servant,
7474-- more precisely by the Servant.Server module.
testserver/tr.nix+5−2
@@ -1,9 +1,9 @@
11{ reflex-platform, ... }:
22let
33
4− dontCheck = (import <nixpkgs> {}).pkgs.haskell.lib.dontCheck;
4+ dontCheck = reflex-platform.lib.dontCheck;
55 cabal2nixResult = reflex-platform.cabal2nixResult;
6− nixpkgs = (import <nixpkgs> {});
6+
77in
88reflex-platform.ghc.override {
99 overrides = self: super: {
@@ -19,6 +19,9 @@ reflex-platform.ghc.override {
1919 snap-loader-dynamic = dontCheck (self.callPackage (cabal2nixResult ../deps/servant-snap/deps/snap-loader-dynamic) {});
2020 hspec-snap = dontCheck (self.callPackage (cabal2nixResult ../deps/servant-snap/deps/hspec-snap) {});
2121
22+ servant = dontCheck (self.callPackage (cabal2nixResult ../deps/servant/servant) {});
23+ http-api-data = dontCheck (self.callPackage (cabal2nixResult ../deps/http-api-data) {});
24+
2225 # servant-foreign = dontCheck (self.callPackage (cabal2nixResult ../deps/servant-snap/deps/servant/servant-foreign) {});
2326 # servant-js = dontCheck (self.callPackage (cabal2nixResult ../deps/servant-snap/deps/servant/servant-js) {});
2427 # servant-docs = dontCheck (self.callPackage (cabal2nixResult ../deps/servant-snap/deps/servant/servant-docs) {});