How to devour a GitHubUser object from the onResponse method, using retrofit2-Android Studio

0

I want to apply a facade (or façade) pattern to not directly access the retrofit methods from the main activity and I need to return objects. How can I do it?

My facade method would be something like this:

public GitHubUser getUser(String user){

    final GitHubUserEndPoints apiService =
            APIClient.getClient().create(GitHubUserEndPoints.class);

    //call our GitHubUser and getUser
    Call<GitHubUser> call = apiService.getUser(user);
    call.enqueue(new Callback<GitHubUser>() {

        //handle information recieved
        @Override
        public void onResponse(Call<GitHubUser> call, Response<GitHubUser> response) {

            myDataGitHubUser = new GitHubUser(response.body().getLogin(),
                    response.body().getName(),
                    response.body().getFollowers(),
                    response.body().getFollowing(),
                    response.body().getAvatar(),
                    response.body().getEmail());
        }

        @Override
        public void onFailure(Call<GitHubUser> call, Throwable t) {
            //information not found in the server
        }
    });
    return myDataGitHubUser;
}

I tried to do it this way but myDataGitHubUser is a null object since being an asynchronous method, the return is performed before the method.

Any ideas on how it would be done?

    
asked by Agauser 12.06.2017 в 08:00
source

0 answers