package com.alorma.github.sdk.services.orgs; import com.alorma.github.sdk.services.client.GithubListClient; import com.alorma.gitskarios.core.client.UsernameProvider; import core.User; import java.util.List; import retrofit.RestAdapter; public class GetOrgsClient extends GithubListClient<List<User>> { private String username; private int page = -1; public GetOrgsClient(String username) { super(); this.username = username; } public GetOrgsClient(String org, int page) { super(); this.username = org; this.page = page; } @Override protected ApiSubscriber getApiObservable(RestAdapter restAdapter) { return new ApiSubscriber() { @Override protected void call(RestAdapter restAdapter) { String apiUsername = UsernameProvider.getInstance() != null ? UsernameProvider.getInstance().getUsername() : ""; if (username != null && username.equalsIgnoreCase(apiUsername)) { username = null; } OrgsService orgsService = restAdapter.create(OrgsService.class); if (page == -1) { if (username == null) { orgsService.orgs(this); } else { orgsService.orgsByUser(username, this); } } else { if (username == null) { orgsService.orgs(page, this); } else { orgsService.orgsByUser(username, page, this); } } } }; } }