| package org.wordpress.android.models; |
| |
| import com.android.volley.VolleyError; |
| import com.wordpress.rest.RestRequest; |
| |
| import org.json.JSONObject; |
| import org.wordpress.android.WordPress; |
| import org.wordpress.android.datasets.AccountTable; |
| import org.wordpress.android.datasets.ReaderUserTable; |
| import org.wordpress.android.ui.prefs.PrefsEvents; |
| import org.wordpress.android.util.AppLog; |
| import org.wordpress.android.util.AppLog.T; |
| |
| import java.util.Map; |
| |
| import de.greenrobot.event.EventBus; |
| |
| /** |
| * Class for managing logged in user informations. |
| */ |
| public class Account extends AccountModel { |
| public void fetchAccountDetails() { |
| if (!hasAccessToken()) { |
| AppLog.e(T.API, "User is not logged in with WordPress.com, ignoring the fetch account details request"); |
| return; |
| } |
| com.wordpress.rest.RestRequest.Listener listener = new RestRequest.Listener() { |
| @Override |
| public void onResponse(JSONObject jsonObject) { |
| if (jsonObject != null) { |
| updateFromRestResponse(jsonObject); |
| save(); |
| |
| ReaderUserTable.addOrUpdateUser(ReaderUser.fromJson(jsonObject)); |
| } |
| } |
| }; |
| |
| RestRequest.ErrorListener errorListener = new RestRequest.ErrorListener() { |
| @Override |
| public void onErrorResponse(VolleyError volleyError) { |
| AppLog.e(T.API, volleyError); |
| } |
| }; |
| |
| WordPress.getRestClientUtilsV1_1().get("me", listener, errorListener); |
| } |
| |
| public void fetchAccountSettings() { |
| if (!hasAccessToken()) { |
| AppLog.e(T.API, "User is not logged in with WordPress.com, ignoring the fetch account settings request"); |
| return; |
| } |
| com.wordpress.rest.RestRequest.Listener listener = new RestRequest.Listener() { |
| @Override |
| public void onResponse(JSONObject jsonObject) { |
| if (jsonObject != null) { |
| updateAccountSettingsFromRestResponse(jsonObject); |
| save(); |
| EventBus.getDefault().post(new PrefsEvents.AccountSettingsFetchSuccess()); |
| } |
| } |
| }; |
| |
| RestRequest.ErrorListener errorListener = new RestRequest.ErrorListener() { |
| @Override |
| public void onErrorResponse(VolleyError volleyError) { |
| AppLog.e(T.API, volleyError); |
| EventBus.getDefault().post(new PrefsEvents.AccountSettingsFetchError(volleyError)); |
| } |
| }; |
| |
| WordPress.getRestClientUtilsV1_1().get("me/settings", listener, errorListener); |
| } |
| |
| public void postAccountSettings(Map<String, String> params) { |
| if (!hasAccessToken()) { |
| AppLog.e(T.API, "User is not logged in with WordPress.com, ignoring the post account settings request"); |
| return; |
| } |
| com.wordpress.rest.RestRequest.Listener listener = new RestRequest.Listener() { |
| @Override |
| public void onResponse(JSONObject jsonObject) { |
| if (jsonObject != null) { |
| updateAccountSettingsFromRestResponse(jsonObject); |
| save(); |
| EventBus.getDefault().post(new PrefsEvents.AccountSettingsPostSuccess()); |
| } |
| } |
| }; |
| |
| RestRequest.ErrorListener errorListener = new RestRequest.ErrorListener() { |
| @Override |
| public void onErrorResponse(VolleyError volleyError) { |
| AppLog.e(T.API, volleyError); |
| EventBus.getDefault().post(new PrefsEvents.AccountSettingsPostError(volleyError)); |
| } |
| }; |
| |
| WordPress.getRestClientUtilsV1_1().post("me/settings", params, null, listener, errorListener); |
| } |
| |
| public void signout() { |
| init(); |
| save(); |
| } |
| |
| public void save() { |
| AccountTable.save(this); |
| } |
| } |