package mediawiki.request.wikibase;
import org.json.JSONException;
import javat.xml.Document;
import mediawiki.MediaWikiConnection;
import mediawiki.MediaWikiPostRequest;
import mediawiki.MediaWikiRequest;
import mediawiki.info.wikibase.Entity;
import mediawiki.request.ManipulativeRequest;
import mediawiki.request.TokenRequest;
public class EditEntityRequest extends MediaWikiRequest<Entity> implements
ManipulativeRequest {
public EditEntityRequest(Entity e) throws JSONException {
setProperty("data", e.toJSONObject().toString());
if(e.getLastRevID() != null)
setProperty("baserevid", e.getLastRevID());
if(e.getID() != null)
setProperty("id", e.getID());
}
public EditEntityRequest(Entity e, String summary) throws JSONException {
this(e);
setProperty("summary", summary);
}
@Override
public Entity request(MediaWikiConnection c) throws Exception {
MediaWikiPostRequest p = new MediaWikiPostRequest(c);
p.putData(getProperties());
p.putData("action", "wbeditentity");
p.putData("token", c.request(new TokenRequest()));
Document d = p.requestDocument();
return new Entity(d.getRootElement().getChildren("entity").get(0));
}
}