aur 5.0.0 → 5.0.1
raw patch · 2 files changed
+21/−19 lines, 2 filesdep ~servantdep ~servant-client
Dependency ranges changed: servant, servant-client
Files
- Linux/Arch/Aur/Rpc.hs +18/−16
- aur.cabal +3/−3
Linux/Arch/Aur/Rpc.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE DataKinds #-} @@ -15,24 +16,23 @@ import Control.Monad.Trans (MonadIO, liftIO) import Control.Monad.Trans.Except import Data.Proxy-import Data.Text (Text, unpack)+import Data.Text (Text) import Linux.Arch.Aur.Types-import Network.HTTP.Client (Manager, newManager)+import Network.HTTP.Client (newManager) import Network.HTTP.Client.TLS import Servant.API import Servant.Client-import System.IO.Unsafe --- -type Info = "rpc" :> QueryParam "v" String- :> QueryParam "type" String- :> QueryParams "arg[]" String+type Info = "rpc" :> QueryParam "v" Text+ :> QueryParam "type" Text+ :> QueryParams "arg[]" Text :> Get '[JSON] RPCResp -type Search = "rpc" :> QueryParam "v" String- :> QueryParam "type" String- :> QueryParam "arg" String+type Search = "rpc" :> QueryParam "v" Text+ :> QueryParam "type" Text+ :> QueryParam "arg" Text :> Get '[JSON] RPCResp type API = Info :<|> Search@@ -40,21 +40,23 @@ api :: Proxy API api = Proxy --- Bad, but necessary, apparently.-__manager :: Manager-__manager = unsafePerformIO $ newManager tlsManagerSettings+url :: BaseUrl+url = BaseUrl Https "aur.archlinux.org" 443 "" -- | Make a call to the AUR RPC. Assumes version 5 of the API.-rpcI :<|> rpcS = client api (BaseUrl Http aurUrl 80 "") __manager- where aurUrl = "aur.archlinux.org"+rpcI :<|> rpcS = client api -- | Perform an @info@ call on one or more package names. info :: MonadIO m => [Text] -> m [AurInfo]-info = unwrap . rpcI (Just "5") (Just "info") . map unpack+info ps = do+ manager <- liftIO $ newManager tlsManagerSettings+ unwrap $ rpcI (Just "5") (Just "info") ps manager url -- | Perform a @search@ call on a package name or description text. search :: MonadIO m => Text -> m [AurInfo]-search = unwrap . rpcS (Just "5") (Just "search") . Just . unpack+search p = do+ manager <- liftIO $ newManager tlsManagerSettings+ unwrap $ rpcS (Just "5") (Just "search") (Just p) manager url unwrap :: MonadIO m => ExceptT ServantError IO RPCResp -> m [AurInfo] unwrap = liftIO . fmap (either (const []) _results) . runExceptT
aur.cabal view
@@ -1,6 +1,6 @@ name: aur -version: 5.0.0+version: 5.0.1 synopsis: Access metadata from the Arch Linux User Repository. @@ -47,8 +47,8 @@ , http-client >= 0.4.27 , http-client-tls >= 0.2.2 , mtl >= 2.2.1- , servant >= 0.5 && < 0.6- , servant-client >= 0.5 && < 0.6+ , servant >= 0.7 && < 0.8+ , servant-client >= 0.7 && < 0.8 , text >=1.1 && <1.3 , transformers >= 0.4.2.0