-------------------------------------------------------------------- -- | -- Module : MediaWiki.API.Action.Block -- Description : Representing Block requests. -- Copyright : (c) Sigbjorn Finne, 2008 -- License : BSD3 -- -- Maintainer: Sigbjorn Finne -- Stability : provisional -- Portability: portable -- -- Representing Block requests. -- -------------------------------------------------------------------- module MediaWiki.API.Action.Block where import MediaWiki.API.Types import MediaWiki.API.Utils data BlockRequest = BlockRequest { blkUser :: UserName , blkToken :: Token , blkGetToken :: Bool , blkExpiry :: Maybe Timestamp , blkReason :: Maybe String , blkAnonOnly :: Bool , blkNoCreate :: Bool , blkAutoBlock :: Bool , blkNoEmail :: Bool , blkHide :: Bool } instance APIRequest BlockRequest where isPostable _ = True showReq r = [ opt "user" (blkUser r) , opt "token" (blkToken r) , optB "gettoken" (blkGetToken r) , mbOpt "expiry" id (blkExpiry r) , mbOpt "reason" id (blkReason r) , optB "anononly" (blkAnonOnly r) , optB "nocreate" (blkNoCreate r) , optB "autoblock" (blkAutoBlock r) , optB "noemail" (blkNoEmail r) , optB "hidename" (blkHide r) ] emptyBlockRequest :: BlockRequest emptyBlockRequest = BlockRequest { blkUser = "" , blkToken = "" , blkGetToken = False , blkExpiry = Nothing , blkReason = Nothing , blkAnonOnly = False , blkNoCreate = False , blkAutoBlock = False , blkNoEmail = False , blkHide = False }