module MediaWiki.API.Query.Categories
( CategoriesRequest(..)
, emptyCategoriesRequest
, CategoriesResponse(..)
, emptyCategoriesResponse
) where
import MediaWiki.API.Types
import MediaWiki.API.Utils
data CategoriesRequest
= CategoriesRequest
{ clProps :: [PropKind]
, clShow :: Maybe Bool
, clLimit :: Maybe Int
, clContinueFrom :: Maybe String
}
instance APIRequest CategoriesRequest where
queryKind _ = QProp "categories"
showReq r =
[ opt1 "clprop" (map prKind $ clProps r)
, mbOpt "clshow" (\ x -> (if x then ('!':) else id) "hidden") (clShow r)
, mbOpt "cllimit" show (clLimit r)
, mbOpt "clcontinue" id (clContinueFrom r)
]
emptyCategoriesRequest :: CategoriesRequest
emptyCategoriesRequest = CategoriesRequest
{ clProps = []
, clShow = Nothing
, clLimit = Nothing
, clContinueFrom = Nothing
}
data CategoriesResponse
= CategoriesResponse
{ clPages :: [(PageTitle,[PageTitle])]
, clContinue :: Maybe String
}
emptyCategoriesResponse :: CategoriesResponse
emptyCategoriesResponse
= CategoriesResponse
{ clPages = []
, clContinue = Nothing
}