module MediaWiki.API.Action.Protect where
import MediaWiki.API.Types
import MediaWiki.API.Utils
data ProtectRequest
= ProtectRequest
{ protTitle :: PageName
, protToken :: Token
, protProtections :: [(String,String)]
, protExpiry :: Maybe Timestamp
, protReason :: Maybe String
, protCascade :: Maybe Bool
}
instance APIRequest ProtectRequest where
isPostable _ = True
showReq r =
[ opt "title" (protTitle r)
, opt "token" (protToken r)
, opt1 "protections" (map (\ (a,b) -> a ++ '=':b) (protProtections r))
, mbOpt "expiry" id (protExpiry r)
, mbOpt "reason" id (protReason r)
, optB "cascade" (fromMaybe False $ protCascade r)
]
emptyProtectRequest :: ProtectRequest
emptyProtectRequest = ProtectRequest
{ protTitle = ""
, protToken = ""
, protProtections = []
, protExpiry = Nothing
, protReason = Nothing
, protCascade = Nothing
}