module MediaWiki.API.Query.CategoryMembers where
import MediaWiki.API.Types
import MediaWiki.API.Utils
data CategoryMembersRequest
= CategoryMembersRequest
{ cmTitle :: Maybe PageName
, cmProp :: [String]
, cmNamespace :: [NamespaceID]
, cmContinueFrom :: Maybe String
, cmLimit :: Maybe Int
, cmSort :: Maybe SortKind
, cmDir :: Maybe Direction
, cmStart :: Maybe Timestamp
, cmEnd :: Maybe Timestamp
}
instance APIRequest CategoryMembersRequest where
queryKind _ = QList "categorymembers"
showReq r =
[ mbOpt "cmtitle" id (cmTitle r)
, opt1 "cmprop" (cmProp r)
, opt1 "cmnamespace" (cmNamespace r)
, mbOpt "cmcontinue" id (cmContinueFrom r)
, mbOpt "cmlimit" show (cmLimit r)
, mbOpt "cmsort" id (cmSort r)
, mbOpt "cmdir" (\ x -> if x==Up then "asc" else "desc") (cmDir r)
, mbOpt "cmstart" id (cmStart r)
, mbOpt "cmend" id (cmEnd r)
]
emptyCategoryMembersRequest :: CategoryMembersRequest
emptyCategoryMembersRequest = CategoryMembersRequest
{ cmTitle = Nothing
, cmProp = []
, cmNamespace = []
, cmContinueFrom = Nothing
, cmLimit = Nothing
, cmSort = Nothing
, cmDir = Nothing
, cmStart = Nothing
, cmEnd = Nothing
}
data CategoryMembersResponse
= CategoryMembersResponse
{ cmPages :: [PageTitle]
, cmContinue :: Maybe String
}
emptyCategoryMembersResponse :: CategoryMembersResponse
emptyCategoryMembersResponse = CategoryMembersResponse
{ cmPages = []
, cmContinue = Nothing
}