Fix EDU-793 PyCharm freezes when creating course from Stepik

Freeze on course creation was caused by EduEduStepicAuthorizedClient which tried to login before getting step. Now we use an authorized client only if user logged in at project creation (it's required for private and adaptive courses), otherwise an unauthorized client is used.
This commit is contained in:
Valentina Kiryushkina
2016-11-24 15:50:55 +03:00
parent a624c87488
commit cb9147f19f
@@ -5,6 +5,7 @@ import com.google.gson.GsonBuilder;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.courseFormat.Course;
import com.jetbrains.edu.learning.courseFormat.Lesson;
import com.jetbrains.edu.learning.courseFormat.Task;
@@ -273,8 +274,16 @@ public class EduStepicConnector {
}
public static StepicWrappers.StepSource getStep(@NotNull Project project, int step) throws IOException {
return EduStepicAuthorizedClient.getFromStepic(EduStepicNames.STEPS + String.valueOf(step),
StepicWrappers.StepContainer.class, project).steps.get(0);
final StudyTaskManager taskManager = StudyTaskManager.getInstance(project);
final boolean isAuthorized = taskManager.getUser().getAccessToken() != null;
if (isAuthorized) {
return EduStepicAuthorizedClient.getFromStepic(EduStepicNames.STEPS + String.valueOf(step),
StepicWrappers.StepContainer.class, project).steps.get(0);
}
else {
return EduStepicClient.getFromStepic(EduStepicNames.STEPS + String.valueOf(step),
StepicWrappers.StepContainer.class).steps.get(0);
}
}
public static void postAttempt(@NotNull final Task task, boolean passed, @NotNull final Project project) {