packages feed

reverse-geocoding 0.2.4.0 → 0.3.0.0

raw patch · 3 files changed

+24/−9 lines, 3 filesdep ~aesonPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aeson

API changes (from Hackage documentation)

- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.FromJSON Data.Geolocation.Reverse.Types.City
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.FromJSON Data.Geolocation.Reverse.Types.Latitude
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.FromJSON Data.Geolocation.Reverse.Types.Longitude
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.FromJSON Data.Geolocation.Reverse.Types.Postcode
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.FromJSON Data.Geolocation.Reverse.Types.Street
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.FromJSON Data.Geolocation.Reverse.Types.Suburb
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.FromJSON Data.ISO3166_CountryCodes.CountryCode
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.ToJSON Data.Geolocation.Reverse.Types.City
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.ToJSON Data.Geolocation.Reverse.Types.Latitude
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.ToJSON Data.Geolocation.Reverse.Types.Longitude
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.ToJSON Data.Geolocation.Reverse.Types.Postcode
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.ToJSON Data.Geolocation.Reverse.Types.Street
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.ToJSON Data.Geolocation.Reverse.Types.Suburb
- Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.Class.ToJSON Data.ISO3166_CountryCodes.CountryCode
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.FromJSON.FromJSON Data.Geolocation.Reverse.Types.City
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.FromJSON.FromJSON Data.Geolocation.Reverse.Types.Latitude
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.FromJSON.FromJSON Data.Geolocation.Reverse.Types.Longitude
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.FromJSON.FromJSON Data.Geolocation.Reverse.Types.Postcode
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.FromJSON.FromJSON Data.Geolocation.Reverse.Types.Street
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.FromJSON.FromJSON Data.Geolocation.Reverse.Types.Suburb
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.FromJSON.FromJSON Data.ISO3166_CountryCodes.CountryCode
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.ToJSON.ToJSON Data.Geolocation.Reverse.Types.City
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.ToJSON.ToJSON Data.Geolocation.Reverse.Types.Latitude
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.ToJSON.ToJSON Data.Geolocation.Reverse.Types.Longitude
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.ToJSON.ToJSON Data.Geolocation.Reverse.Types.Postcode
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.ToJSON.ToJSON Data.Geolocation.Reverse.Types.Street
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.ToJSON.ToJSON Data.Geolocation.Reverse.Types.Suburb
+ Data.Geolocation.Reverse.Types: instance Data.Aeson.Types.ToJSON.ToJSON Data.ISO3166_CountryCodes.CountryCode
- Data.Geolocation.Reverse.Providers: type ReverseGeoProvider = (ReverseGeoJsonKey, ReverseGeoUrl, ReverseGeoParser)
+ Data.Geolocation.Reverse.Providers: type ReverseGeoProvider = (ReverseGeoJsonKey, ReverseGeoUrl, ReverseGeoParser, Maybe Options)

Files

reverse-geocoding.cabal view
@@ -1,5 +1,5 @@ name:                reverse-geocoding-version:             0.2.4.0+version:             0.3.0.0 synopsis:            Simple reverse geocoding using OpenStreeMap description:         Simple reverse geocoding using OpenStreeMap homepage:            https://github.com/jcristovao/reverse-geocoding@@ -22,7 +22,7 @@                     , lens                  >= 4.4   && < 4.16                     , lens-aeson            >= 1.0.0.5   && < 1.2                     , wreq                  >= 0.4   && < 0.5-                    , aeson                 >= 0.10   && < 0.12+                    , aeson                 >= 0.10   && < 1.2                     , text                  >= 1.2   && < 1.3                     , iso3166-country-codes >= 0.20140203.7   hs-source-dirs:     src
src/Data/Geolocation/Reverse.hs view
@@ -18,7 +18,7 @@ module Data.Geolocation.Reverse where  import Control.Lens-import Network.Wreq+import Network.Wreq (getWith, responseBody) import Data.Aeson import Data.Aeson.Types import Data.Aeson.Lens (key)@@ -36,11 +36,11 @@   -> Longitude   -> ReverseGeoProvider   -> IO (Maybe ParsedLocationInfo)-getLocationInfo lat lon (jsonkey,url,parser) =+getLocationInfo lat lon (jsonkey,url,parser,Just options) =   case url lat lon  of     Nothing -> return Nothing     Just ga -> do-      r   <- get ga+      r   <- getWith options ga       --    addr :: Maybe Value       let addr = r ^? responseBody . key jsonkey       case addr of
src/Data/Geolocation/Reverse/Providers.hs view
@@ -16,11 +16,13 @@ import Control.Applicative  import Data.Char+import Control.Lens ((.~),(&)) import Data.Monoid import Data.Maybe import Data.Aeson-import Data.Aeson.Types+import Data.Aeson.Types hiding (Options) import Control.Monad (join)+import Network.Wreq (Options, defaults, header) import qualified Data.Text as T  import Data.Geolocation.Reverse.Types@@ -28,11 +30,24 @@ type ReverseGeoJsonKey = T.Text type ReverseGeoUrl = Latitude -> Longitude -> Maybe String type ReverseGeoParser  = Object -> Parser ParsedLocationInfo-type ReverseGeoProvider = (ReverseGeoJsonKey, ReverseGeoUrl, ReverseGeoParser)-+type ReverseGeoProvider =+  ( ReverseGeoJsonKey+  , ReverseGeoUrl+  , ReverseGeoParser+  , Maybe Options+  )  openStreetMap :: ReverseGeoProvider-openStreetMap = ("address", openStreetMapUrl, openStreetMapParser)+openStreetMap =+  ( "address"+  , openStreetMapUrl+  , openStreetMapParser+  , Just+    ( defaults+    & header "User-Agent"+      .~ ["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"]+    )+  )  openStreetMapUrl :: Latitude -> Longitude -> Maybe String openStreetMapUrl (Latitude mlat) (Longitude mlon) = do