package com.fastaccess.ui.modules.repos.extras.milestone.create;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.fastaccess.R;
import com.fastaccess.data.dao.CreateMilestoneModel;
import com.fastaccess.helper.InputHelper;
import com.fastaccess.helper.ParseDateFormat;
import com.fastaccess.provider.rest.RestProvider;
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
import java.util.Date;
/**
* Created by Kosh on 04 Mar 2017, 10:49 PM
*/
public class CreateMilestonePresenter extends BasePresenter<CreateMilestoneMvp.View> implements CreateMilestoneMvp.Presenter {
@Override public void onSubmit(@Nullable String title, @Nullable String dueOn, @Nullable String description,
@NonNull String login, @NonNull String repo) {
if (getView() != null) {
boolean isEmptyTitle = InputHelper.isEmpty(title);
getView().onShowTitleError(isEmptyTitle);
if (!isEmptyTitle) {
CreateMilestoneModel createMilestoneModel = new CreateMilestoneModel();
createMilestoneModel.setTitle(title);
if (!InputHelper.isEmpty(dueOn)) {
Date date = ParseDateFormat.getDateFromString(dueOn);
if (date != null) createMilestoneModel.setDueOn(ParseDateFormat.toGithubDate(date));
}
if (!InputHelper.isEmpty(description)) {
createMilestoneModel.setDescription(description);
}
makeRestCall(RestProvider.getRepoService().createMilestone(login, repo, createMilestoneModel),
milestoneModel -> {
if (milestoneModel != null) {
sendToView(view -> view.onMilestoneAdded(milestoneModel));
} else {
sendToView(view -> view.showMessage(R.string.error, R.string.error_creating_milestone));
}
});
}
}
}
}