From 69a06483dcc17f457c6965fb0cb0f1195fc45cfb Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Fri, 5 Aug 2016 12:49:07 +0300 Subject: [PATCH] make use of new stepik API --- .../edu/learning/stepic/CourseInfo.java | 9 +++++++++ .../edu/learning/stepic/EduStepicConnector.java | 16 ++++++++++++---- .../edu/learning/stepic/EduStepicNames.java | 1 - 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/CourseInfo.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/CourseInfo.java index ebf68058323e..972aec207ad5 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/CourseInfo.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/CourseInfo.java @@ -31,6 +31,7 @@ public class CourseInfo { @Nullable private String username; @SerializedName("update_date") private Date updateDate; + @SerializedName("is_idea_compatible") private boolean isCompatible = true; public String getName() { return myName; @@ -151,4 +152,12 @@ public class CourseInfo { public List getSections() { return sections; } + + public boolean isCompatible() { + return isCompatible; + } + + public void setCompatible(boolean compatible) { + isCompatible = compatible; + } } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java index a4887f04800b..06d5927fb096 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java @@ -340,17 +340,25 @@ public class EduStepicConnector { } private static boolean addCoursesFromStepic(List result, int pageNumber) throws IOException { - final String url = pageNumber == 0 ? EduStepicNames.COURSES : EduStepicNames.COURSES_FROM_PAGE + String.valueOf(pageNumber); - final StepicWrappers.CoursesContainer coursesContainer = getFromStepic(url, StepicWrappers.CoursesContainer.class); + final URI url; + try { + url = new URIBuilder(EduStepicNames.COURSES).addParameter("is_idea_compatible", "true"). + addParameter("page", String.valueOf(pageNumber)).build(); + } + catch (URISyntaxException e) { + LOG.error(e.getMessage()); + return false; + } + final StepicWrappers.CoursesContainer coursesContainer = getFromStepic(url.toString(), StepicWrappers.CoursesContainer.class); final List courseInfos = coursesContainer.courses; for (CourseInfo info : courseInfos) { final String courseType = info.getType(); if (!info.isAdaptive() && StringUtil.isEmptyOrSpaces(courseType)) continue; final List typeLanguage = StringUtil.split(courseType, " "); - // TODO: should adaptive course be of PyCharmType ? if (info.isAdaptive() || (typeLanguage.size() == 2 && PYCHARM_PREFIX.equals(typeLanguage.get(0)))) { for (Integer instructor : info.instructors) { - final StepicUser author = getFromStepic(EduStepicNames.USERS + "/" + String.valueOf(instructor), StepicWrappers.AuthorWrapper.class).users.get(0); + final StepicUser author = getFromStepic(EduStepicNames.USERS + "/" + String.valueOf(instructor), + StepicWrappers.AuthorWrapper.class).users.get(0); info.addAuthor(author); } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicNames.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicNames.java index 1eea7d1b8e00..a506e3ab1a30 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicNames.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicNames.java @@ -18,7 +18,6 @@ public class EduStepicNames { public static final String STEP_SOURCES = "/step-sources/"; public static final String CURRENT_USER = "/stepics/1"; public static final String COURSES = "/courses"; - public static final String COURSES_FROM_PAGE = COURSES + "?page="; public static final String STEPS = "/steps"; public static final String SECTIONS = "/sections/"; public static final String ENROLLMENTS = "/enrollments";