module MediaWiki.API.Query.ExternalURLUsage where
import MediaWiki.API.Types
import MediaWiki.API.Utils
data ExternalURLUsageRequest
 = ExternalURLUsageRequest
    { euProp       :: [String]
    , euOffset     :: Maybe String
    , euProtocol   :: Maybe String
    , euQuery      :: Maybe String
    , euNamespaces :: [NamespaceID]
    , euLimit      :: Maybe Int
    }
instance APIRequest ExternalURLUsageRequest where
  queryKind _ = QList "exturlusage"
  showReq r = 
    [ opt1 "euprop" (euProp r)
    , mbOpt "euoffset" id (euOffset r)
    , mbOpt "euprotocol" id (euProtocol r)
    , mbOpt "euquery" id (euQuery r)
    , opt1  "eunamespace" (euNamespaces r)
    , mbOpt "eulimit" show (euLimit r)
    ]
emptyExternalURLUsageRequest :: ExternalURLUsageRequest
emptyExternalURLUsageRequest = ExternalURLUsageRequest
    { euProp       = []
    , euOffset     = Nothing
    , euProtocol   = Nothing
    , euQuery      = Nothing
    , euNamespaces = []
    , euLimit      = Nothing
    }
    
data ExternalURLUsageResponse
 = ExternalURLUsageResponse
    { euPages    :: [(URLString,PageTitle)]
    , euContinue :: Maybe String
    }
emptyExternalURLUsageResponse :: ExternalURLUsageResponse
emptyExternalURLUsageResponse = ExternalURLUsageResponse
    { euPages    = []
    , euContinue = Nothing
    }