Search in sources :

Example 1 with Units

use of org.stepik.api.objects.units.Units in project intellij-plugins by StepicOrg.

the class StepNode method getCourseId.

@Override
public long getCourseId(@NotNull StepikApiClient stepikApiClient) {
    StudyNode parent = getParent();
    if (parent != null) {
        return parent.getCourseId(stepikApiClient);
    }
    if (courseId != 0) {
        return courseId;
    }
    Step data = getData();
    if (data == null) {
        return 0;
    }
    int lessonId = data.getLesson();
    if (lessonId == 0) {
        return 0;
    }
    try {
        Units units = stepikApiClient.units().get().lesson(lessonId).execute();
        if (units.isEmpty()) {
            return 0;
        }
        LessonNode lessonNode = new LessonNode();
        CompoundUnitLesson lessonData = lessonNode.getData();
        if (lessonData != null) {
            lessonData.setUnit(units.getFirst());
        }
        courseId = lessonNode.getCourseId(stepikApiClient);
        return courseId;
    } catch (StepikClientException ignored) {
    }
    return 0;
}
Also used : CompoundUnitLesson(org.stepik.api.objects.lessons.CompoundUnitLesson) Step(org.stepik.api.objects.steps.Step) StepikClientException(org.stepik.api.exceptions.StepikClientException) Units(org.stepik.api.objects.units.Units)

Example 2 with Units

use of org.stepik.api.objects.units.Units 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();
}
Also used : CompoundUnitLesson(org.stepik.api.objects.lessons.CompoundUnitLesson) Unit(org.stepik.api.objects.units.Unit) StepikClientException(org.stepik.api.exceptions.StepikClientException) Lesson(org.stepik.api.objects.lessons.Lesson) CompoundUnitLesson(org.stepik.api.objects.lessons.CompoundUnitLesson) Units(org.stepik.api.objects.units.Units) NotNull(org.jetbrains.annotations.NotNull)

Example 3 with Units

use of org.stepik.api.objects.units.Units 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;
}
Also used : HashMap(java.util.HashMap) Lessons(org.stepik.api.objects.lessons.Lessons) ArrayList(java.util.ArrayList) Unit(org.stepik.api.objects.units.Unit) Section(org.stepik.api.objects.sections.Section) StepikClientException(org.stepik.api.exceptions.StepikClientException) Units(org.stepik.api.objects.units.Units) CompoundUnitLesson(org.stepik.api.objects.lessons.CompoundUnitLesson)

Aggregations

StepikClientException (org.stepik.api.exceptions.StepikClientException)3 CompoundUnitLesson (org.stepik.api.objects.lessons.CompoundUnitLesson)3 Units (org.stepik.api.objects.units.Units)3 Unit (org.stepik.api.objects.units.Unit)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 NotNull (org.jetbrains.annotations.NotNull)1 Lesson (org.stepik.api.objects.lessons.Lesson)1 Lessons (org.stepik.api.objects.lessons.Lessons)1 Section (org.stepik.api.objects.sections.Section)1 Step (org.stepik.api.objects.steps.Step)1