Search in sources :

Example 31 with CourseConfigVO

use of org.olat.restapi.support.vo.CourseConfigVO in project OpenOLAT by OpenOLAT.

the class LecturesBlocksTest method getLecturesBlock_repository.

/**
 *  Get the list of lecture block through the repository entry.
 *
 * @throws IOException
 * @throws URISyntaxException
 */
@Test
public void getLecturesBlock_repository() throws IOException, URISyntaxException {
    Identity author = JunitTestHelper.createAndPersistIdentityAsAuthor("lect-1");
    ICourse course = CoursesWebService.createEmptyCourse(author, "Course with absence", "Course with absence", new CourseConfigVO());
    RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
    LectureBlock block = createLectureBlock(entry);
    dbInstance.commit();
    RestConnection conn = new RestConnection();
    Assert.assertTrue(conn.login("administrator", "openolat"));
    URI uri = UriBuilder.fromUri(getContextURI()).path("repo").path("entries").path(entry.getKey().toString()).path("lectureblocks").build();
    HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
    HttpResponse response = conn.execute(method);
    Assert.assertEquals(200, response.getStatusLine().getStatusCode());
    List<LectureBlockVO> voList = parseLectureBlockArray(response.getEntity().getContent());
    Assert.assertNotNull(voList);
    Assert.assertEquals(1, voList.size());
    LectureBlockVO blockVo = voList.get(0);
    Assert.assertEquals(block.getKey(), blockVo.getKey());
    Assert.assertEquals(entry.getKey(), blockVo.getRepoEntryKey());
}
Also used : CourseConfigVO(org.olat.restapi.support.vo.CourseConfigVO) LectureBlock(org.olat.modules.lecture.LectureBlock) HttpGet(org.apache.http.client.methods.HttpGet) LectureBlockVO(org.olat.modules.lecture.restapi.LectureBlockVO) HttpResponse(org.apache.http.HttpResponse) ICourse(org.olat.course.ICourse) RepositoryEntry(org.olat.repository.RepositoryEntry) Identity(org.olat.core.id.Identity) URI(java.net.URI) Test(org.junit.Test)

Example 32 with CourseConfigVO

use of org.olat.restapi.support.vo.CourseConfigVO in project OpenOLAT by OpenOLAT.

the class LecturesBlocksTest method putLecturesBlock_repository.

@Test
public void putLecturesBlock_repository() throws IOException, URISyntaxException {
    Identity author = JunitTestHelper.createAndPersistIdentityAsAuthor("lect-1");
    ICourse course = CoursesWebService.createEmptyCourse(author, "Course with absence", "Course with absence", new CourseConfigVO());
    RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
    dbInstance.commit();
    RestConnection conn = new RestConnection();
    Assert.assertTrue(conn.login("administrator", "openolat"));
    String externalId = UUID.randomUUID().toString();
    LectureBlockVO lectureBlockVo = new LectureBlockVO();
    lectureBlockVo.setTitle("New block");
    lectureBlockVo.setDescription("A little description");
    lectureBlockVo.setComment("A comment");
    lectureBlockVo.setLocation("The secret location");
    lectureBlockVo.setManagedFlagsString("all");
    lectureBlockVo.setPreparation("Lot of");
    lectureBlockVo.setPlannedLectures(4);
    lectureBlockVo.setExternalId(externalId);
    lectureBlockVo.setStartDate(new Date());
    lectureBlockVo.setEndDate(new Date());
    URI uri = UriBuilder.fromUri(getContextURI()).path("repo").path("entries").path(entry.getKey().toString()).path("lectureblocks").build();
    HttpPut method = conn.createPut(uri, MediaType.APPLICATION_JSON, true);
    conn.addJsonEntity(method, lectureBlockVo);
    HttpResponse response = conn.execute(method);
    // check the response
    Assertions.assertThat(response.getStatusLine().getStatusCode()).isIn(200, 201);
    LectureBlockVO blockVo = conn.parse(response.getEntity().getContent(), LectureBlockVO.class);
    Assert.assertNotNull(blockVo);
    Assert.assertEquals(entry.getKey(), blockVo.getRepoEntryKey());
    Assert.assertEquals("New block", blockVo.getTitle());
    Assert.assertEquals("A little description", blockVo.getDescription());
    Assert.assertEquals("A comment", blockVo.getComment());
    Assert.assertEquals("The secret location", blockVo.getLocation());
    Assert.assertEquals("all", blockVo.getManagedFlagsString());
    Assert.assertEquals(4, blockVo.getPlannedLectures());
    Assert.assertEquals(externalId, blockVo.getExternalId());
    Assert.assertNotNull(blockVo.getStartDate());
    Assert.assertNotNull(blockVo.getEndDate());
    // check the database
    LectureBlock dbBlock = lectureService.getLectureBlock(new LectureBlockRefImpl(blockVo.getKey()));
    Assert.assertNotNull(dbBlock);
    Assert.assertEquals("New block", dbBlock.getTitle());
    Assert.assertEquals("A little description", dbBlock.getDescription());
    Assert.assertEquals("A comment", dbBlock.getComment());
    Assert.assertEquals("The secret location", dbBlock.getLocation());
    Assert.assertEquals("all", dbBlock.getManagedFlagsString());
    Assert.assertEquals(4, dbBlock.getPlannedLecturesNumber());
    Assert.assertEquals(externalId, dbBlock.getExternalId());
    Assert.assertNotNull(dbBlock.getStartDate());
    Assert.assertNotNull(dbBlock.getEndDate());
}
Also used : LectureBlockVO(org.olat.modules.lecture.restapi.LectureBlockVO) HttpResponse(org.apache.http.HttpResponse) ICourse(org.olat.course.ICourse) RepositoryEntry(org.olat.repository.RepositoryEntry) URI(java.net.URI) Date(java.util.Date) HttpPut(org.apache.http.client.methods.HttpPut) CourseConfigVO(org.olat.restapi.support.vo.CourseConfigVO) LectureBlock(org.olat.modules.lecture.LectureBlock) LectureBlockRefImpl(org.olat.modules.lecture.model.LectureBlockRefImpl) Identity(org.olat.core.id.Identity) Test(org.junit.Test)

Example 33 with CourseConfigVO

use of org.olat.restapi.support.vo.CourseConfigVO in project OpenOLAT by OpenOLAT.

the class LecturesBlocksTest method updateLecturesBlockConfiguration.

@Test
public void updateLecturesBlockConfiguration() throws IOException, URISyntaxException {
    Identity author = JunitTestHelper.createAndPersistIdentityAsAuthor("lect-1");
    ICourse course = CoursesWebService.createEmptyCourse(author, "Course with absence config", "Course with absence configuration", new CourseConfigVO());
    RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
    dbInstance.commit();
    RestConnection conn = new RestConnection();
    Assert.assertTrue(conn.login("administrator", "openolat"));
    RepositoryEntryLectureConfigurationVO configVo = new RepositoryEntryLectureConfigurationVO();
    configVo.setLectureEnabled(Boolean.TRUE);
    configVo.setCalculateAttendanceRate(Boolean.TRUE);
    configVo.setOverrideModuleDefault(Boolean.TRUE);
    configVo.setCourseCalendarSyncEnabled(Boolean.TRUE);
    configVo.setRequiredAttendanceRate(34.0d);
    configVo.setRollCallEnabled(Boolean.TRUE);
    configVo.setTeacherCalendarSyncEnabled(Boolean.TRUE);
    URI uri = UriBuilder.fromUri(getContextURI()).path("repo").path("entries").path(entry.getKey().toString()).path("lectureblocks").path("configuration").build();
    HttpPost method = conn.createPost(uri, MediaType.APPLICATION_JSON);
    conn.addJsonEntity(method, configVo);
    HttpResponse response = conn.execute(method);
    // check the response
    Assert.assertEquals(200, response.getStatusLine().getStatusCode());
    RepositoryEntryLectureConfigurationVO updateConfigVo = conn.parse(response, RepositoryEntryLectureConfigurationVO.class);
    Assert.assertNotNull(updateConfigVo);
    Assert.assertEquals(Boolean.TRUE, updateConfigVo.getLectureEnabled());
    Assert.assertEquals(Boolean.TRUE, updateConfigVo.getCalculateAttendanceRate());
    Assert.assertEquals(Boolean.TRUE, updateConfigVo.getOverrideModuleDefault());
    Assert.assertEquals(Boolean.TRUE, updateConfigVo.getCourseCalendarSyncEnabled());
    Assert.assertEquals(34.0d, updateConfigVo.getRequiredAttendanceRate(), 0000.1);
    Assert.assertEquals(Boolean.TRUE, updateConfigVo.getRollCallEnabled());
    Assert.assertEquals(Boolean.TRUE, updateConfigVo.getTeacherCalendarSyncEnabled());
    // check the database
    RepositoryEntryLectureConfiguration dbConfig = lectureService.getRepositoryEntryLectureConfiguration(entry);
    Assert.assertNotNull(dbConfig);
    Assert.assertTrue(dbConfig.isLectureEnabled());
    Assert.assertEquals(Boolean.TRUE, dbConfig.getCalculateAttendanceRate());
    Assert.assertTrue(dbConfig.isOverrideModuleDefault());
    Assert.assertEquals(Boolean.TRUE, dbConfig.getCourseCalendarSyncEnabled());
    Assert.assertEquals(34.0d, dbConfig.getRequiredAttendanceRate(), 0000.1);
    Assert.assertEquals(Boolean.TRUE, dbConfig.getRollCallEnabled());
    Assert.assertEquals(Boolean.TRUE, dbConfig.getTeacherCalendarSyncEnabled());
}
Also used : CourseConfigVO(org.olat.restapi.support.vo.CourseConfigVO) HttpPost(org.apache.http.client.methods.HttpPost) RepositoryEntryLectureConfigurationVO(org.olat.modules.lecture.restapi.RepositoryEntryLectureConfigurationVO) HttpResponse(org.apache.http.HttpResponse) ICourse(org.olat.course.ICourse) RepositoryEntry(org.olat.repository.RepositoryEntry) Identity(org.olat.core.id.Identity) RepositoryEntryLectureConfiguration(org.olat.modules.lecture.RepositoryEntryLectureConfiguration) URI(java.net.URI) Test(org.junit.Test)

Example 34 with CourseConfigVO

use of org.olat.restapi.support.vo.CourseConfigVO in project OpenOLAT by OpenOLAT.

the class CourseCalendarTest method putCalendarEvents.

@Test
public void putCalendarEvents() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    Identity admin = BaseSecurityManager.getInstance().findIdentityByName("administrator");
    Assert.assertTrue(conn.login("administrator", "openolat"));
    CourseConfigVO config = new CourseConfigVO();
    config.setCalendar(Boolean.TRUE);
    ICourse course = CoursesWebService.createEmptyCourse(admin, "Course with calendar", "Course with calendar", config);
    dbInstance.commitAndCloseSession();
    // create an event
    EventVO event1 = new EventVO();
    Calendar cal = Calendar.getInstance();
    event1.setBegin(cal.getTime());
    cal.add(Calendar.HOUR_OF_DAY, 1);
    event1.setEnd(cal.getTime());
    String subject1 = UUID.randomUUID().toString();
    event1.setSubject(subject1);
    EventVO event2 = new EventVO();
    event2.setBegin(cal.getTime());
    cal.add(Calendar.HOUR_OF_DAY, 1);
    event2.setEnd(cal.getTime());
    String subject2 = UUID.randomUUID().toString();
    event2.setSubject(subject2);
    EventVO[] newEvents = new EventVO[2];
    newEvents[0] = event1;
    newEvents[1] = event2;
    URI eventUri = UriBuilder.fromUri(getContextURI()).path("repo").path("courses").path(course.getResourceableId().toString()).path("calendar").path("events").build();
    HttpPut putEventMethod = conn.createPut(eventUri, MediaType.APPLICATION_JSON, true);
    conn.addJsonEntity(putEventMethod, newEvents);
    HttpResponse putEventResponse = conn.execute(putEventMethod);
    assertEquals(200, putEventResponse.getStatusLine().getStatusCode());
    EntityUtils.consume(putEventResponse.getEntity());
    // check if the event is saved
    KalendarRenderWrapper calendarWrapper = calendarManager.getCourseCalendar(course);
    Collection<KalendarEvent> savedEvents = calendarWrapper.getKalendar().getEvents();
    boolean found1 = false;
    boolean found2 = false;
    for (KalendarEvent savedEvent : savedEvents) {
        if (subject1.equals(savedEvent.getSubject())) {
            found1 = true;
        } else if (subject2.equals(savedEvent.getSubject())) {
            found2 = true;
        }
    }
    Assert.assertTrue(found1);
    Assert.assertTrue(found2);
    conn.shutdown();
}
Also used : Calendar(java.util.Calendar) HttpResponse(org.apache.http.HttpResponse) KalendarEvent(org.olat.commons.calendar.model.KalendarEvent) ICourse(org.olat.course.ICourse) KalendarRenderWrapper(org.olat.commons.calendar.ui.components.KalendarRenderWrapper) URI(java.net.URI) HttpPut(org.apache.http.client.methods.HttpPut) CourseConfigVO(org.olat.restapi.support.vo.CourseConfigVO) Identity(org.olat.core.id.Identity) EventVO(org.olat.commons.calendar.restapi.EventVO) Test(org.junit.Test)

Example 35 with CourseConfigVO

use of org.olat.restapi.support.vo.CourseConfigVO in project openolat by klemens.

the class CalendarTest method startup.

@Before
public void startup() {
    if (id1 == null) {
        id1 = JunitTestHelper.createAndPersistIdentityAsUser("cal-1-" + UUID.randomUUID().toString());
    }
    if (id2 == null) {
        id2 = JunitTestHelper.createAndPersistIdentityAsUser("cal-2-" + UUID.randomUUID().toString());
    }
    if (course1 == null) {
        // create a course with a calendar
        CourseConfigVO config = new CourseConfigVO();
        config.setCalendar(Boolean.TRUE);
        course1 = CoursesWebService.createEmptyCourse(id1, "Cal course", "Cal course", config);
        dbInstance.commit();
        ICourse course = CourseFactory.loadCourse(course1.getResourceableId());
        CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
        Assert.assertTrue(courseConfig.isCalendarEnabled());
        KalendarRenderWrapper calendarWrapper = calendarManager.getCourseCalendar(course);
        Calendar cal = Calendar.getInstance();
        for (int i = 0; i < 10; i++) {
            Date begin = cal.getTime();
            cal.add(Calendar.HOUR_OF_DAY, 1);
            Date end = cal.getTime();
            KalendarEvent event = new KalendarEvent(UUID.randomUUID().toString(), null, "Unit test " + i, begin, end);
            calendarManager.addEventTo(calendarWrapper.getKalendar(), event);
            cal.add(Calendar.DATE, 1);
        }
        cal = Calendar.getInstance();
        cal.add(Calendar.MONTH, -1);
        Date begin2 = cal.getTime();
        cal.add(Calendar.HOUR_OF_DAY, 1);
        Date end2 = cal.getTime();
        KalendarEvent event2 = new KalendarEvent(UUID.randomUUID().toString(), null, "Unit test 2", begin2, end2);
        calendarManager.addEventTo(calendarWrapper.getKalendar(), event2);
        RepositoryEntry entry = repositoryManager.lookupRepositoryEntry(course1, false);
        entry = repositoryManager.setAccess(entry, RepositoryEntry.ACC_USERS, false);
        repositoryService.addRole(id1, entry, GroupRoles.participant.name());
        dbInstance.commit();
    }
    if (course2 == null) {
        // create a course with a calendar
        CourseConfigVO config = new CourseConfigVO();
        config.setCalendar(Boolean.TRUE);
        course2 = CoursesWebService.createEmptyCourse(id2, "Cal course - 2", "Cal course - 2", config);
        dbInstance.commit();
        KalendarRenderWrapper calendarWrapper = calendarManager.getCourseCalendar(course2);
        Assert.assertNotNull(calendarWrapper);
        RepositoryEntry entry = repositoryManager.lookupRepositoryEntry(course2, false);
        entry = repositoryManager.setAccess(entry, RepositoryEntry.ACC_USERS, false);
        dbInstance.commit();
    }
}
Also used : CourseConfigVO(org.olat.restapi.support.vo.CourseConfigVO) Calendar(java.util.Calendar) KalendarEvent(org.olat.commons.calendar.model.KalendarEvent) ICourse(org.olat.course.ICourse) RepositoryEntry(org.olat.repository.RepositoryEntry) KalendarRenderWrapper(org.olat.commons.calendar.ui.components.KalendarRenderWrapper) Date(java.util.Date) CourseConfig(org.olat.course.config.CourseConfig) Before(org.junit.Before)

Aggregations

CourseConfigVO (org.olat.restapi.support.vo.CourseConfigVO)44 ICourse (org.olat.course.ICourse)40 URI (java.net.URI)32 HttpResponse (org.apache.http.HttpResponse)32 Test (org.junit.Test)32 Identity (org.olat.core.id.Identity)32 RepositoryEntry (org.olat.repository.RepositoryEntry)30 LectureBlock (org.olat.modules.lecture.LectureBlock)24 HttpGet (org.apache.http.client.methods.HttpGet)14 LectureBlockVO (org.olat.modules.lecture.restapi.LectureBlockVO)14 Date (java.util.Date)10 HttpPut (org.apache.http.client.methods.HttpPut)10 Calendar (java.util.Calendar)6 Produces (javax.ws.rs.Produces)6 HttpDelete (org.apache.http.client.methods.HttpDelete)6 KalendarEvent (org.olat.commons.calendar.model.KalendarEvent)6 KalendarRenderWrapper (org.olat.commons.calendar.ui.components.KalendarRenderWrapper)6 CourseConfig (org.olat.course.config.CourseConfig)6 Consumes (javax.ws.rs.Consumes)4 PUT (javax.ws.rs.PUT)4