Search in sources :

Example 1 with Unit

use of org.stepik.api.objects.units.Unit 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 2 with Unit

use of org.stepik.api.objects.units.Unit 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;
}
Also used : StepikAuthManager.authAndGetStepikApiClient(org.stepik.core.stepik.StepikAuthManager.authAndGetStepikApiClient) StepikApiClient(org.stepik.api.client.StepikApiClient) CompoundUnitLesson(org.stepik.api.objects.lessons.CompoundUnitLesson) Unit(org.stepik.api.objects.units.Unit) Section(org.stepik.api.objects.sections.Section)

Example 3 with Unit

use of org.stepik.api.objects.units.Unit 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

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