/*
* WPCleaner: A tool to help on Wikipedia maintenance tasks.
* Copyright (C) 2013 Nicolas Vervelle
*
* See README.txt file for licensing information.
*/
package org.wikipediacleaner.api.request.query.list;
import java.util.Map;
import org.wikipediacleaner.api.APIException;
import org.wikipediacleaner.api.constants.EnumWikipedia;
import org.wikipediacleaner.api.data.User;
/**
* MediaWiki API users requests.
*/
public class ApiUsersRequest extends ApiListRequest {
// ==========================================================================
// API properties
// ==========================================================================
/**
* Property for Properties.
*/
public final static String PROPERTY_PROP = "usprop";
/**
* Property value for properties / Block info.
*/
public final static String PROPERTY_PROP_BLOCKINFO = "blockinfo";
/**
* Property value for properties / Edit count.
*/
public final static String PROPERTY_PROP_EDITCOUNT = "editcount";
/**
* Property value for properties / Emailable.
*/
public final static String PROPERTY_PROP_EMAILABLE = "emailable";
/**
* Property value for properties / Gender.
*/
public final static String PROPERTY_PROP_GENDER = "gender";
/**
* Property value for properties / Groups.
*/
public final static String PROPERTY_PROP_GROUPS = "groups";
/**
* Property value for properties / Implicit groups.
*/
public final static String PROPERTY_PROP_IMPLICITGROUPS = "implicitgroups";
/**
* Property value for properties / Registration.
*/
public final static String PROPERTY_PROP_REGISTRATION = "registration";
/**
* Property value for properties / Rights.
*/
public final static String PROPERTY_PROP_RIGHTS = "rights";
/**
* Property for Token.
*/
public final static String PROPERTY_TOKEN = "ustoken";
/**
* Property value for token / User rights.
*/
public final static String PROPERTY_TOKEN_USERRIGHTS = "userrights";
/**
* Property for Users.
*/
public final static String PROPERTY_USERS = "ususers";
// ==========================================================================
// Request management
// ==========================================================================
private final ApiUsersResult result;
/**
* @param wiki Wiki.
* @param result Parser for result depending on chosen format.
*/
public ApiUsersRequest(EnumWikipedia wiki, ApiUsersResult result) {
super(wiki);
this.result = result;
}
/**
* Retrieve User information.
*/
public User retrieveUser(String username) throws APIException {
Map<String, String> properties = getProperties(ACTION_QUERY, result.getFormat());
properties.put(PROPERTY_LIST, PROPERTY_LIST_USERS);
properties.put(PROPERTY_CONTINUE, PROPERTY_CONTINUE_DEFAULT);
properties.put(PROPERTY_USERS, username);
properties.put(PROPERTY_PROP, PROPERTY_PROP_GROUPS + "|" + PROPERTY_PROP_RIGHTS);
return result.executeUser(properties);
}
}