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 +5/−0
- hedis-config.cabal +2/−1
- src/Database/Redis/Config.hs +9/−1
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))