packages feed

hedis-config 0.0.2 → 0.0.3

raw patch · 3 files changed

+16/−2 lines, 3 filesdep +bytestringPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: bytestring

API changes (from Hackage documentation)

- Database.Redis.Config: getConnectInfo :: RedisConfig -> ConnectInfo
- Database.Redis.Config: instance FromJSON RedisConfig
+ Database.Redis.Config: [getConnectInfo] :: RedisConfig -> ConnectInfo
+ Database.Redis.Config: instance Data.Aeson.Types.Class.FromJSON Database.Redis.Config.RedisConfig

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # CHANGELOG +## 0.0.3+### Changed+* Empty password string will be nullified. Redis counts empty `AUTH` command as+  error when no password is set.+ ## 0.0.2 ### Changed * relaxed upper base version constraints to `< 5`
hedis-config.cabal view
@@ -1,5 +1,5 @@ name:                hedis-config-version:             0.0.2+version:             0.0.3 synopsis:            Easy trivial configuration for Redis description: Datatype to parse redis connection settings from file like   .@@ -38,6 +38,7 @@    build-depends:       base         >= 4.6   && < 5                      , aeson+                     , bytestring                      , hedis        >= 0.6                      , scientific                      , text
src/Database/Redis/Config.hs view
@@ -10,6 +10,7 @@ import Database.Redis  import qualified Data.Aeson.Types as A+import qualified Data.ByteString.Char8 as BS import qualified Data.Text.Encoding as T  @@ -45,6 +46,13 @@     <|> (fmap UnixSocket (o .: "socket"))     <|> (fmap Service (o .: "service")) +parsePassword :: Object -> A.Parser (Maybe BS.ByteString)+parsePassword o = do+  mp <- o .:? "password"+  pure $ case mp of+    Nothing -> Nothing+    Just "" -> Nothing+    Just ps -> Just $ T.encodeUtf8 ps  instance FromJSON RedisConfig where     parseJSON v = RedisConfig <$> withObject "RedisConfig" go v@@ -53,7 +61,7 @@             ConnInfo             <$> (o .:? "host" .!= connectHost defaultConnectInfo)             <*> (parsePort o .!= connectPort defaultConnectInfo)-            <*> (fmap (fmap T.encodeUtf8) (o .:? "password"))+            <*> parsePassword o             <*> (o .:? "database" .!= (connectDatabase defaultConnectInfo))             <*> (o .:? "max-connections" .!= (connectMaxConnections defaultConnectInfo))             <*> (fmap (fmap (realToFrac :: Scientific -> NominalDiffTime)) (o .:? "max-idle-time") .!= (connectMaxIdleTime defaultConnectInfo))