package org.goodev.discourse.api;
import android.os.AsyncTask;
import org.goodev.discourse.App;
import org.goodev.discourse.api.data.UserDetails;
import org.goodev.discourse.utils.HttpRequest;
import org.goodev.discourse.utils.HttpRequest.HttpRequestException;
import org.goodev.discourse.utils.L;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.net.HttpURLConnection;
public class GetUserInfoTask extends AsyncTask<Void, Void, UserDetails> {
private final String mSite;
private final String mName;
public GetUserInfoTask(String site, String name) {
mSite = site;
mName = name;
}
@Override
protected UserDetails doInBackground(Void... params) {
try {
String url = mSite + String.format(Api.GET_USER, mName);
L.i(url);
HttpRequest hr = HttpRequest.get(url);
HttpURLConnection conn = hr.getConnection();
if (App.isLogin()) {
App.getCookieManager().setCookies(conn);
}
String body = hr.body();
L.i(body);
JSONObject obj = new JSONObject(body);
if (obj.has(Api.K_user)) {
JSONObject userObj = obj.getJSONObject(Api.K_user);
UserDetails user = Api.getUserDetails(userObj);
return user;
}
} catch (HttpRequestException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}