package com.fastaccess.ui.modules.filter.issues;
import android.support.annotation.NonNull;
import com.fastaccess.data.dao.LabelModel;
import com.fastaccess.data.dao.MilestoneModel;
import com.fastaccess.data.dao.Pageable;
import com.fastaccess.data.dao.model.User;
import com.fastaccess.provider.rest.RestProvider;
import com.fastaccess.ui.base.mvp.BaseMvp;
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
import java.util.ArrayList;
import lombok.Getter;
import rx.Observable;
/**
* Created by Kosh on 09 Apr 2017, 6:22 PM
*/
@Getter public class FilterIssuesActivityPresenter extends BasePresenter<FilterIssuesActivityMvp.View> implements FilterIssuesActivityMvp.Presenter {
@NonNull private ArrayList<LabelModel> labels = new ArrayList<>();
@NonNull private ArrayList<MilestoneModel> milestones = new ArrayList<>();
@NonNull private ArrayList<User> assignees = new ArrayList<>();
@Override public void onStart(@NonNull String login, @NonNull String repoId) {
Observable<Pageable<MilestoneModel>> observable = RestProvider.getRepoService().getLabels(login, repoId)
.flatMap(labelModelPageable -> {
if (labelModelPageable != null && labelModelPageable.getItems() != null) {
labels.clear();
labels.addAll(labelModelPageable.getItems());
}
return RestProvider.getRepoService().getAssignees(login, repoId);
})
.flatMap(userPageable -> {
if (userPageable != null && userPageable.getItems() != null) {
assignees.clear();
assignees.addAll(userPageable.getItems());
}
return RestProvider.getRepoService().getMilestones(login, repoId);
});
makeRestCall(observable, response -> {
if (response != null && response.getItems() != null) {
milestones.clear();
milestones.addAll(response.getItems());
}
sendToView(BaseMvp.FAView::hideProgress);
});
}
}