use of org.stepik.api.objects.lessons.CompoundUnitLesson in project intellij-plugins by StepicOrg.
the class LessonNode method getChildDataList.
@Override
protected List<Step> getChildDataList(@NotNull StepikApiClient stepikApiClient) {
Steps steps = new Steps();
try {
CompoundUnitLesson data = getData();
List<Long> stepsIds = data != null ? data.getLesson().getSteps() : Collections.emptyList();
if (!stepsIds.isEmpty()) {
steps = stepikApiClient.steps().get().id(stepsIds).execute();
}
} catch (StepikClientException logged) {
logger.warn("A lesson initialization don't is fully", logged);
}
return steps.getSteps();
}
use of org.stepik.api.objects.lessons.CompoundUnitLesson in project intellij-plugins by StepicOrg.
the class Utils method getCompoundUnitLessonStudyObject.
@NotNull
private static CompoundUnitLesson getCompoundUnitLessonStudyObject(@NotNull StepikApiClient stepikApiClient, long unitId, long lessonId) {
Units units = null;
if (unitId != 0) {
try {
units = stepikApiClient.units().get().id(unitId).execute();
} catch (StepikClientException e) {
logger.warn(e);
units = new Units();
}
}
Unit unit = null;
if (unitId != 0 && !units.isEmpty()) {
unit = units.getFirst();
}
Lesson lesson = getLesson(lessonId, stepikApiClient);
return lesson != null ? new CompoundUnitLesson(unit, lesson) : new CompoundUnitLesson();
}
use of org.stepik.api.objects.lessons.CompoundUnitLesson in project intellij-plugins by StepicOrg.
the class Utils method getLessonStudyObject.
private static StudyObject getLessonStudyObject(long lessonId, long unitId) {
StepikApiClient stepikApiClient = authAndGetStepikApiClient();
CompoundUnitLesson unitLesson = getCompoundUnitLessonStudyObject(stepikApiClient, unitId, lessonId);
Unit unit = unitLesson.getUnit();
if (unit.getId() != 0) {
Section section = getSectionStudyObject(stepikApiClient, unit.getSection());
if (section != null) {
return getCourseStudyObject(section.getCourse());
}
}
return unitLesson;
}
use of org.stepik.api.objects.lessons.CompoundUnitLesson in project intellij-plugins by StepicOrg.
the class LessonNode method getCourseId.
@Override
public long getCourseId(@NotNull StepikApiClient stepikApiClient) {
StudyNode parent = getParent();
if (parent != null) {
return parent.getCourseId(stepikApiClient);
}
if (courseId != 0) {
return courseId;
}
CompoundUnitLesson data = getData();
int sectionId = data != null ? data.getUnit().getSection() : 0;
if (sectionId == 0) {
return 0;
}
try {
Sections sections = stepikApiClient.sections().get().id(sectionId).execute();
if (sections.isEmpty()) {
return 0;
}
courseId = sections.getFirst().getCourse();
return courseId;
} catch (StepikClientException ignored) {
}
return 0;
}
use of org.stepik.api.objects.lessons.CompoundUnitLesson in project intellij-plugins by StepicOrg.
the class SectionNode method getChildDataList.
@Override
protected List<CompoundUnitLesson> getChildDataList(@NotNull StepikApiClient stepikApiClient) {
List<CompoundUnitLesson> objects = new ArrayList<>();
try {
List<Long> unitsIds;
Section data = getData();
unitsIds = data != null ? data.getUnits() : Collections.emptyList();
if (!unitsIds.isEmpty()) {
int size = unitsIds.size();
Long[] list = unitsIds.toArray(new Long[size]);
int start = 0;
int end;
while (start < size) {
end = start + 20;
if (end > size) {
end = size;
}
Long[] part = Arrays.copyOfRange(list, start, end);
start = end;
Units units = stepikApiClient.units().get().id(part).execute();
Map<Long, Unit> unitsMap = new HashMap<>();
List<Long> lessonsIds = new ArrayList<>();
units.getUnits().forEach(unit -> {
long lessonId = unit.getLesson();
lessonsIds.add(lessonId);
unitsMap.put(lessonId, unit);
});
Lessons lessons = stepikApiClient.lessons().get().id(lessonsIds).execute();
lessons.getLessons().forEach(lesson -> objects.add(new CompoundUnitLesson(unitsMap.get(lesson.getId()), lesson)));
}
}
} catch (StepikClientException logged) {
logger.warn("A section initialization don't is fully", logged);
}
return objects;
}
Aggregations