package com.tomclaw.mandarin.im.icq;
import com.tomclaw.mandarin.util.HttpParamsBuilder;
import org.json.JSONException;
import org.json.JSONObject;
import static com.tomclaw.mandarin.im.icq.WimConstants.RESPONSE_OBJECT;
import static com.tomclaw.mandarin.im.icq.WimConstants.STATUS_CODE;
/**
* Created with IntelliJ IDEA.
* User: Solkin
* Date: 21.10.13
* Time: 0:20
*/
public class EndSessionRequest extends WimRequest {
public EndSessionRequest() {
}
@Override
protected int parseJson(JSONObject response) throws JSONException {
JSONObject responseObject = response.getJSONObject(RESPONSE_OBJECT);
int statusCode = responseObject.getInt(STATUS_CODE);
// Check for server reply.
if (statusCode == WIM_OK || statusCode == WIM_AUTH_REQUIRED) { // TODO: check for other status codes.
// Session now ended or already ended.
IcqAccountRoot accountRoot = getAccountRoot();
accountRoot.resetSessionData();
accountRoot.carriedOff();
return REQUEST_DELETE;
}
// Maybe incorrect aim sid or other strange error we've not recognized.
return REQUEST_SKIP;
}
@Override
protected String getUrl() {
return getAccountRoot().getWellKnownUrls().getWebApiBase()
.concat("aim/endSession");
}
@Override
protected HttpParamsBuilder getParams() {
return new HttpParamsBuilder()
.appendParam("aimsid", getAccountRoot().getAimSid())
.appendParam("f", WimConstants.FORMAT_JSON);
}
}