packages feed

http-query 0.1.0 → 0.1.0.1

raw patch · 4 files changed

+26/−10 lines, 4 filesdep +transformersdep ~aesonPVP ok

version bump matches the API change (PVP)

Dependencies added: transformers

Dependency ranges changed: aeson

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,4 +1,8 @@-# Revision history for simple-query+# Revision history for http-query -## 0.1 -- 2020-08-18+## 0.1.0.1 (2021-02-28)+- webAPIQuery: use setRequestCheckStatus+- build for ghc-7.10 with transformers++## 0.1.0 (2020-08-18) - initial release
README.md view
@@ -1,6 +1,9 @@-# simple-query+# http-query -Very thin layer over http-conduit for simpler web API queries.+[![GitHub CI](https://github.com/juhp/dl-fedora/workflows/build/badge.svg)](https://github.com/juhp/dl-fedora/actions)+[![Hackage](http://img.shields.io/hackage/v/http-query.png)](http://hackage.haskell.org/package/http-query)++Very thin layer over http-conduit for simpler web json API queries.  See the Network.HTTP.Query documentation for more details. 
http-query.cabal view
@@ -1,5 +1,5 @@ name:                http-query-version:             0.1.0+version:             0.1.0.1 synopsis:            Simple http queries description:         Simple web API queries to JSON.@@ -7,7 +7,7 @@ license-file:        LICENSE author:              Jens Petersen <juhpetersen@gmail.com> maintainer:          Jens Petersen <juhpetersen@gmail.com>-copyright:           2020  Jens Petersen <juhpetersen@gmail.com>+copyright:           2020-2021  Jens Petersen <juhpetersen@gmail.com> category:            Web homepage:            https://github.com/juhp/http-query bug-reports:         https://github.com/juhp/http-query/issues@@ -27,6 +27,8 @@                      , network-uri                      , http-conduit                      , text+  if impl(ghc < 8)+    build-depends:     transformers   exposed-modules:     Network.HTTP.Query   hs-source-dirs:      src 
src/Network/HTTP/Query.hs view
@@ -6,15 +6,19 @@ @ {-# LANGUAGE OverloadedStrings #-} +import Data.Text.IO as T import Network.HTTP.Query  main = do   let api = "http://www.example.com/api/1"       endpoint = api +/+ "search"   res <- webAPIQuery endpoint $ makeKey "q" "needle"-  case lookupKey "results" res of-    Nothing -> putStrLn "Result not found"-    Just results -> print results+  T.putStrLn $+    case lookupKey "results" res of+      Nothing ->+        fromMaybe "search failed" $ lookupKey "error" res+      Just results ->+        lookupKey' "location" results @ -} @@ -84,9 +88,12 @@   case parseURI url of     Nothing -> error $ "Cannot parse uri: " ++ url     Just uri ->-      let req = setRequestQueryString params $ requestFromURI_ uri+      let req = setRequestCheckStatus $+                setRequestQueryString params $+                requestFromURI_ uri       in getResponseBody <$> httpJSON req +-- FIXME support "key1.key2" etc -- | Look up key in object lookupKey :: FromJSON a => Text -> Object -> Maybe a lookupKey k = parseMaybe (.: k)