fixed get available private courses

This commit is contained in:
Ekaterina Tuzova
2016-11-28 15:51:04 +03:00
parent 7787a2608e
commit e059708634
4 changed files with 14 additions and 9 deletions
@@ -401,11 +401,11 @@ public class StudyProjectGenerator {
// Supposed to be called under progress
public List<CourseInfo> getCourses(boolean force) {
if (OUR_COURSES_DIR.exists()) {
if (OUR_COURSES_DIR.exists() && !force) {
myCourses = getCoursesFromCache();
}
if (force || myCourses.isEmpty()) {
myCourses = execCancelable(EduStepicConnector::getCourses);
myCourses = execCancelable(() -> EduStepicConnector.getCourses(myUser));
flushCache(myCourses);
}
if (myCourses.isEmpty()) {
@@ -57,11 +57,11 @@ public class EduStepicConnector {
}
@NotNull
public static List<CourseInfo> getCourses() {
public static List<CourseInfo> getCourses(@Nullable StepicUser user) {
try {
List<CourseInfo> result = new ArrayList<>();
int pageNumber = 1;
while (addCoursesFromStepic(result, pageNumber)) {
while (addCoursesFromStepic(user, result, pageNumber)) {
pageNumber += 1;
}
return result;
@@ -117,7 +117,7 @@ public class EduStepicConnector {
return null;
}
private static boolean addCoursesFromStepic(List<CourseInfo> result, int pageNumber) throws IOException {
private static boolean addCoursesFromStepic(@Nullable StepicUser user, List<CourseInfo> result, int pageNumber) throws IOException {
final URI url;
try {
url = new URIBuilder(EduStepicNames.COURSES).addParameter("is_idea_compatible", "true").
@@ -127,8 +127,13 @@ public class EduStepicConnector {
LOG.error(e.getMessage());
return false;
}
final StepicWrappers.CoursesContainer coursesContainer = EduStepicClient.getFromStepic(url.toString(),
StepicWrappers.CoursesContainer.class);
final StepicWrappers.CoursesContainer coursesContainer;
if (user != null) {
coursesContainer = EduStepicAuthorizedClient.getFromStepic(url.toString(), StepicWrappers.CoursesContainer.class, user);
}
else {
coursesContainer = EduStepicClient.getFromStepic(url.toString(), StepicWrappers.CoursesContainer.class);
}
addAvailableCourses(result, coursesContainer);
return coursesContainer.meta.containsKey("has_next") && coursesContainer.meta.get("has_next") == Boolean.TRUE;
}
@@ -47,7 +47,7 @@ public class EduStepicUpdater {
private static ActionCallback updateCourseList() {
ActionCallback callback = new ActionCallback();
ApplicationManager.getApplication().executeOnPooledThread(() -> {
final List<CourseInfo> courses = EduStepicConnector.getCourses();
final List<CourseInfo> courses = EduStepicConnector.getCourses(null);
final List<CourseInfo> cachedCourses = StudyProjectGenerator.getCoursesFromCache();
StudyProjectGenerator.flushCache(courses);
StepicUpdateSettings.getInstance().setLastTimeChecked(System.currentTimeMillis());
@@ -346,7 +346,7 @@ public class StudyNewProjectPanel extends JPanel implements PanelWithAnchor {
final StepicUser stepicUser = StudyUtils.execCancelable(() -> EduStepicAuthorizedClient.login(myLoginPanel.getLogin(),
myLoginPanel.getPassword()));
if (stepicUser != null) {
if (stepicUser != null && stepicUser.getAccessToken() != null) {
stepicUser.setEmail(myLoginPanel.getLogin());
stepicUser.setPassword(myLoginPanel.getPassword());
myGenerator.myUser = stepicUser;