{-# LANGUAGE OverloadedStrings #-} module Fedora.Copr.ListCoprs ( Coprs (..) , Repo (..)) where import Control.Applicative import Control.Monad (mzero) import Data.Aeson import Data.Map (Map) import qualified Data.Text as T data Coprs = Coprs { output :: String , repos :: Maybe [Repo] , error :: Maybe String } deriving (Eq, Show) data Repo = Repo { yumRepos :: Map T.Text T.Text , additionalRepos :: T.Text , instructions :: T.Text , name :: T.Text , description :: T.Text } deriving (Eq, Show) instance FromJSON Repo where parseJSON (Object v) = Repo <$> v .: "yum_repos" <*> v .: "additional_repos" <*> v .: "instructions" <*> v .: "name" <*> v .: "description" parseJSON _ = mzero instance FromJSON Coprs where parseJSON (Object v) = Coprs <$> v .: "output" <*> v .:? "repos" <*> v .:? "error" parseJSON _ = mzero