aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/User/FetchUserData.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/User/FetchUserData.java')
-rw-r--r--app/src/main/java/User/FetchUserData.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/app/src/main/java/User/FetchUserData.java b/app/src/main/java/User/FetchUserData.java
new file mode 100644
index 00000000..edaa3b14
--- /dev/null
+++ b/app/src/main/java/User/FetchUserData.java
@@ -0,0 +1,50 @@
+package User;
+
+import android.support.annotation.NonNull;
+import android.util.Log;
+
+import ml.docilealligator.infinityforreddit.RedditAPI;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Retrofit;
+
+public class FetchUserData {
+ public interface FetchUserDataListener {
+ void onFetchUserDataSuccess(User user);
+ void onFetchUserDataFail();
+ }
+
+ public static void fetchUserData(final Retrofit retrofit, String userName,
+ final FetchUserDataListener fetchUserDataListener) {
+ RedditAPI api = retrofit.create(RedditAPI.class);
+
+ Call<String> userInfo = api.getUserData(userName);
+ userInfo.enqueue(new Callback<String>() {
+ @Override
+ public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
+ if(response.isSuccessful()) {
+ ParseUserData.parseMyInfo(response.body(), new ParseUserData.ParseUserDataListener() {
+ @Override
+ public void onParseUserDataSuccess(User user) {
+ fetchUserDataListener.onFetchUserDataSuccess(user);
+ }
+
+ @Override
+ public void onParseUserDataFail() {
+ fetchUserDataListener.onFetchUserDataFail();
+ }
+ });
+ } else {
+ Log.i("call failed", response.message());
+ fetchUserDataListener.onFetchUserDataFail();
+ }
+ }
+
+ @Override
+ public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
+ Log.i("call failed", t.getMessage());
+ fetchUserDataListener.onFetchUserDataFail();
+ }
+ });
+ }
+}