packages feed

aur 5.0.1 → 6.0.0

raw patch · 4 files changed

+70/−31 lines, 4 filesdep +aurdep +tastydep +tasty-hunitdep −mtldep −transformersdep ~aesondep ~basedep ~http-client

Dependencies added: aur, tasty, tasty-hunit

Dependencies removed: mtl, transformers

Dependency ranges changed: aeson, base, http-client, http-client-tls, servant, servant-client, text

Files

Linux/Arch/Aur/Rpc.hs view
@@ -13,13 +13,11 @@ module Linux.Arch.Aur.Rpc        ( info, search ) where -import Control.Monad.Trans (MonadIO, liftIO)-import Control.Monad.Trans.Except+import Control.Monad.IO.Class (MonadIO, liftIO) import Data.Proxy import Data.Text (Text) import Linux.Arch.Aur.Types-import Network.HTTP.Client (newManager)-import Network.HTTP.Client.TLS+import Network.HTTP.Client (Manager) import Servant.API import Servant.Client @@ -47,16 +45,12 @@ rpcI :<|> rpcS = client api  -- | Perform an @info@ call on one or more package names.-info :: MonadIO m => [Text] -> m [AurInfo]-info ps = do-  manager <- liftIO $ newManager tlsManagerSettings-  unwrap $ rpcI (Just "5") (Just "info") ps manager url+info :: MonadIO m => Manager -> [Text] -> m [AurInfo]+info m ps = unwrap m $ rpcI (Just "5") (Just "info") ps  -- | Perform a @search@ call on a package name or description text.-search :: MonadIO m => Text -> m [AurInfo]-search p = do-  manager <- liftIO $ newManager tlsManagerSettings-  unwrap $ rpcS (Just "5") (Just "search") (Just p) manager url+search :: MonadIO m => Manager -> Text -> m [AurInfo]+search m p = unwrap m $ rpcS (Just "5") (Just "search") (Just p) -unwrap :: MonadIO m => ExceptT ServantError IO RPCResp -> m [AurInfo]-unwrap = liftIO . fmap (either (const []) _results) . runExceptT+unwrap :: MonadIO m => Manager -> ClientM RPCResp -> m [AurInfo]+unwrap m r = liftIO . fmap (either (const []) _results) $ runClientM r (ClientEnv m url)
Linux/Arch/Aur/Types.hs view
@@ -37,15 +37,15 @@                        , pkgBaseIdOf      :: Int                        , pkgBaseOf        :: Text                        , aurVersionOf     :: Text-                       , aurDescriptionOf :: Text-                       , urlOf            :: Text+                       , aurDescriptionOf :: Maybe Text+                       , urlOf            :: Maybe Text                        , aurVotesOf       :: Int                        , popularityOf     :: Float                        , dateObsoleteOf   :: Maybe Int                        , aurMaintainerOf  :: Maybe Text                        , submissionDateOf :: Int                        , modifiedDateOf   :: Int-                       , urlPathOf        :: Text+                       , urlPathOf        :: Maybe Text                        , dependsOf        :: [Text]                        , makeDepsOf       :: [Text]                        , optDepsOf        :: [Text]@@ -61,15 +61,15 @@                            v .:  "PackageBaseID"      <*>                            v .:  "PackageBase"        <*>                            v .:  "Version"            <*>-                           v .:  "Description"        <*>-                           v .:  "URL"                <*>+                           v .:? "Description"        <*>+                           v .:? "URL"                <*>                            v .:  "NumVotes"           <*>                            v .:  "Popularity"         <*>                            (v .: "OutOfDate"  <|> pure Nothing) <*>                            (v .: "Maintainer" <|> pure Nothing) <*>                            v .:  "FirstSubmitted"     <*>                            v .:  "LastModified"       <*>-                           v .:  "URLPath"            <*>+                           v .:? "URLPath"            <*>                            v .:? "Depends"     .!= [] <*>                            v .:? "MakeDepends" .!= [] <*>                            v .:? "OptDepends"  .!= [] <*>
aur.cabal view
@@ -1,6 +1,6 @@ name:                aur -version:             5.0.1+version:             6.0.0  synopsis:            Access metadata from the Arch Linux User Repository. @@ -40,16 +40,29 @@   exposed-modules:     Linux.Arch.Aur,                        Linux.Arch.Aur.Rpc,                        Linux.Arch.Aur.Types-  +   build-depends:-                       base >=4.8 && <4.9-                     , aeson >= 0.9.0.1-                     , http-client >= 0.4.27-                     , http-client-tls >= 0.2.2-                     , mtl >= 2.2.1-                     , servant >= 0.7 && < 0.8-                     , servant-client >= 0.7 && < 0.8-                     , text >=1.1 && <1.3-                     , transformers >= 0.4.2.0+                       base >= 4.8 && < 4.10+                     , aeson >= 0.9 && < 1.1+                     , http-client >= 0.5 && < 0.6+                     , servant >= 0.9 && < 0.10+                     , servant-client >= 0.9 && < 0.10+                     , text >= 1.2 && < 1.3 +  default-language:    Haskell2010++  ghc-options:         -fwarn-unused-imports++test-suite aur-test+  type:                exitcode-stdio-1.0++  build-depends:       aur+                     , base >= 4.8 && < 4.10+                     , tasty >= 0.11 && < 0.12+                     , tasty-hunit >= 0.9 && < 0.10+                     , http-client >= 0.5 && < 0.6+                     , http-client-tls >= 0.3 && < 0.4++  hs-source-dirs:      tests+  main-is:             Test.hs   default-language:    Haskell2010
+ tests/Test.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE OverloadedStrings #-}++module Main where++import Linux.Arch.Aur+import Network.HTTP.Client+import Network.HTTP.Client.TLS+import Test.Tasty+import Test.Tasty.HUnit++---++suite :: Manager -> TestTree+suite m = testGroup "RPC Calls"+  [ testCase "info on existing package" $ infoTest m+  , testCase "info on nonexistant package" $ infoTest' m+  , testCase "search" $ searchTest m+  ]++infoTest :: Manager -> Assertion+infoTest m = info m ["aura"] >>= assert . not . null++infoTest' :: Manager -> Assertion+infoTest' m = info m ["aura1234567"] >>= assert . null++searchTest :: Manager -> Assertion+searchTest m = search m "aura" >>= assert . not . null++main :: IO ()+main = do+  m <- newManager tlsManagerSettings+  defaultMain $ suite m