fedora-dists-2.0.0: src/Distribution/Fedora/Release.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE CPP #-}
module Distribution.Fedora.Release
( Release(releaseProductVersionId,releaseVersion,releaseProduct),
readRelease
)
where
import Data.Aeson(Object)
import Data.Text (Text)
import Fedora.PDC (lookupKey)
data Release = Release {
releaseProductVersionId :: Text,
-- releaseReleases :: [Text],
-- releaseAllowedPushTargets :: [[Maybe Value]],
-- releaseActive :: Bool,
-- releaseName :: Text,
releaseVersion :: Text,
-- releaseShort :: Text,
releaseProduct :: Text
} deriving (Show,Eq)
instance Ord Release where
compare r1 r2 =
compare (releaseProductVersionId r1) (releaseProductVersionId r2)
readRelease :: Object -> Maybe Release
readRelease obj = do
pvid <- lookupKey "product_version_id" obj
ver <- lookupKey "version" obj
prod <- lookupKey "product" obj
return $ Release pvid ver prod