Search in sources :

Example 6 with CourseVOes

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

the class UserCoursesWebService method getTeachedCourses.

/**
 * Retrieves the list of "My supervised courses" but limited to courses.
 * @response.representation.200.qname {http://www.example.com}courseVO
 * @response.representation.200.mediaType application/xml, application/json
 * @response.representation.200.doc The courses
 * @response.representation.200.example {@link org.olat.restapi.support.vo.Examples#SAMPLE_COURSEVOes}
 * @response.representation.401.doc The roles of the authenticated user are not sufficient
 * @param start The first result
 * @param limit Max result
 * @param httpRequest The HTTP request
 * @param request The REST request
 * @return The list of my supervised entries
 */
@GET
@Path("teached")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response getTeachedCourses(@QueryParam("start") @DefaultValue("0") Integer start, @QueryParam("limit") @DefaultValue("25") Integer limit, @Context HttpServletRequest httpRequest, @Context Request request) {
    RepositoryManager rm = RepositoryManager.getInstance();
    if (MediaTypeVariants.isPaged(httpRequest, request)) {
        List<RepositoryEntry> repoEntries = rm.getLearningResourcesAsTeacher(identity, start, limit, RepositoryEntryOrder.nameAsc);
        int totalCount = rm.countLearningResourcesAsTeacher(identity);
        CourseVO[] vos = toCourseVo(repoEntries);
        CourseVOes voes = new CourseVOes();
        voes.setCourses(vos);
        voes.setTotalCount(totalCount);
        return Response.ok(voes).build();
    } else {
        List<RepositoryEntry> repoEntries = rm.getLearningResourcesAsTeacher(identity, 0, -1);
        CourseVO[] vos = toCourseVo(repoEntries);
        return Response.ok(vos).build();
    }
}
Also used : CourseVO(org.olat.restapi.support.vo.CourseVO) RepositoryManager(org.olat.repository.RepositoryManager) RepositoryEntry(org.olat.repository.RepositoryEntry) CourseVOes(org.olat.restapi.support.vo.CourseVOes) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Example 7 with CourseVOes

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

the class UserCoursesTest method testMyCourses.

@Test
public void testMyCourses() throws IOException, URISyntaxException {
    // prepare a course with a participant
    Identity user = JunitTestHelper.createAndPersistIdentityAsUser("My-course-" + UUID.randomUUID().toString());
    ICourse course = CoursesWebService.createEmptyCourse(user, "My course 1", "My course", null);
    RepositoryEntry courseRe = repositoryManager.lookupRepositoryEntry(course, true);
    repositoryManager.setAccess(courseRe, RepositoryEntry.ACC_OWNERS, true);
    repositoryService.addRole(user, courseRe, GroupRoles.participant.name());
    dbInstance.commitAndCloseSession();
    RestConnection conn = new RestConnection();
    Assert.assertTrue(conn.login(user.getName(), JunitTestHelper.PWD));
    // without paging
    URI request = UriBuilder.fromUri(getContextURI()).path("/users").path(user.getKey().toString()).path("/courses/my").build();
    HttpGet method = conn.createGet(request, MediaType.APPLICATION_JSON, true);
    HttpResponse response = conn.execute(method);
    Assert.assertEquals(200, response.getStatusLine().getStatusCode());
    InputStream body = response.getEntity().getContent();
    List<CourseVO> courses = parseCourseArray(body);
    Assert.assertNotNull(courses);
    Assert.assertEquals(1, courses.size());
    // with paging
    URI pagedRequest = UriBuilder.fromUri(getContextURI()).path("/users").path(user.getKey().toString()).path("/courses/my").queryParam("start", "0").queryParam("limit", "10").build();
    HttpGet pagedMethod = conn.createGet(pagedRequest, MediaType.APPLICATION_JSON + ";pagingspec=1.0", true);
    HttpResponse pagedResponse = conn.execute(pagedMethod);
    Assert.assertEquals(200, pagedResponse.getStatusLine().getStatusCode());
    InputStream pagedBody = pagedResponse.getEntity().getContent();
    CourseVOes pagedCourses = conn.parse(pagedBody, CourseVOes.class);
    Assert.assertNotNull(pagedCourses);
    Assert.assertEquals(1, pagedCourses.getTotalCount());
    Assert.assertNotNull(pagedCourses.getCourses());
    Assert.assertEquals(1, pagedCourses.getCourses().length);
    conn.shutdown();
}
Also used : CourseVO(org.olat.restapi.support.vo.CourseVO) InputStream(java.io.InputStream) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) ICourse(org.olat.course.ICourse) RepositoryEntry(org.olat.repository.RepositoryEntry) CourseVOes(org.olat.restapi.support.vo.CourseVOes) Identity(org.olat.core.id.Identity) URI(java.net.URI) Test(org.junit.Test)

Example 8 with CourseVOes

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

the class UserCoursesTest method testFavoritCourses.

@Test
public void testFavoritCourses() throws IOException, URISyntaxException {
    // prepare a course with a tutor
    Identity me = JunitTestHelper.createAndPersistIdentityAsUser("Course-teacher-" + UUID.randomUUID().toString());
    ICourse course = CoursesWebService.createEmptyCourse(me, "A course to teach", "A course to teach", null);
    RepositoryEntry courseRe = repositoryManager.lookupRepositoryEntry(course, true);
    repositoryManager.setAccess(courseRe, RepositoryEntry.ACC_USERS, false);
    markManager.setMark(courseRe, me, null, "[RepositoryEntry:" + courseRe.getKey() + "]");
    dbInstance.commitAndCloseSession();
    RestConnection conn = new RestConnection();
    Assert.assertTrue(conn.login(me.getName(), JunitTestHelper.PWD));
    // without paging
    URI request = UriBuilder.fromUri(getContextURI()).path("/users").path(me.getKey().toString()).path("/courses/favorite").build();
    HttpGet method = conn.createGet(request, MediaType.APPLICATION_JSON, true);
    HttpResponse response = conn.execute(method);
    Assert.assertEquals(200, response.getStatusLine().getStatusCode());
    InputStream body = response.getEntity().getContent();
    List<CourseVO> courses = parseCourseArray(body);
    Assert.assertNotNull(courses);
    Assert.assertEquals(1, courses.size());
    // with paging
    URI pagedRequest = UriBuilder.fromUri(getContextURI()).path("/users").path(me.getKey().toString()).path("/courses/favorite").queryParam("start", "0").queryParam("limit", "10").build();
    HttpGet pagedMethod = conn.createGet(pagedRequest, MediaType.APPLICATION_JSON + ";pagingspec=1.0", true);
    HttpResponse pagedResponse = conn.execute(pagedMethod);
    Assert.assertEquals(200, pagedResponse.getStatusLine().getStatusCode());
    InputStream pagedBody = pagedResponse.getEntity().getContent();
    CourseVOes pagedCourses = conn.parse(pagedBody, CourseVOes.class);
    Assert.assertNotNull(pagedCourses);
    Assert.assertEquals(1, pagedCourses.getTotalCount());
    Assert.assertNotNull(pagedCourses.getCourses());
    Assert.assertEquals(1, pagedCourses.getCourses().length);
    conn.shutdown();
}
Also used : CourseVO(org.olat.restapi.support.vo.CourseVO) InputStream(java.io.InputStream) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) ICourse(org.olat.course.ICourse) RepositoryEntry(org.olat.repository.RepositoryEntry) CourseVOes(org.olat.restapi.support.vo.CourseVOes) Identity(org.olat.core.id.Identity) URI(java.net.URI) Test(org.junit.Test)

Example 9 with CourseVOes

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

the class UserCoursesTest method testTeachedCourses.

@Test
public void testTeachedCourses() throws IOException, URISyntaxException {
    // prepare a course with a tutor
    Identity teacher = JunitTestHelper.createAndPersistIdentityAsUser("Course-teacher-" + UUID.randomUUID().toString());
    ICourse course = CoursesWebService.createEmptyCourse(teacher, "A course to teach", "A course to teach", null);
    RepositoryEntry courseRe = repositoryManager.lookupRepositoryEntry(course, true);
    repositoryManager.setAccess(courseRe, RepositoryEntry.ACC_OWNERS, true);
    repositoryService.addRole(teacher, courseRe, GroupRoles.coach.name());
    dbInstance.commitAndCloseSession();
    RestConnection conn = new RestConnection();
    Assert.assertTrue(conn.login(teacher.getName(), JunitTestHelper.PWD));
    // without paging
    URI request = UriBuilder.fromUri(getContextURI()).path("/users").path(teacher.getKey().toString()).path("/courses/teached").build();
    HttpGet method = conn.createGet(request, MediaType.APPLICATION_JSON, true);
    HttpResponse response = conn.execute(method);
    Assert.assertEquals(200, response.getStatusLine().getStatusCode());
    InputStream body = response.getEntity().getContent();
    List<CourseVO> courses = parseCourseArray(body);
    Assert.assertNotNull(courses);
    Assert.assertEquals(1, courses.size());
    // with paging
    URI pagedRequest = UriBuilder.fromUri(getContextURI()).path("/users").path(teacher.getKey().toString()).path("/courses/teached").queryParam("start", "0").queryParam("limit", "10").build();
    HttpGet pagedMethod = conn.createGet(pagedRequest, MediaType.APPLICATION_JSON + ";pagingspec=1.0", true);
    HttpResponse pagedResponse = conn.execute(pagedMethod);
    Assert.assertEquals(200, pagedResponse.getStatusLine().getStatusCode());
    InputStream pagedBody = pagedResponse.getEntity().getContent();
    CourseVOes pagedCourses = conn.parse(pagedBody, CourseVOes.class);
    Assert.assertNotNull(pagedCourses);
    Assert.assertEquals(1, pagedCourses.getTotalCount());
    Assert.assertNotNull(pagedCourses.getCourses());
    Assert.assertEquals(1, pagedCourses.getCourses().length);
    conn.shutdown();
}
Also used : CourseVO(org.olat.restapi.support.vo.CourseVO) InputStream(java.io.InputStream) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) ICourse(org.olat.course.ICourse) RepositoryEntry(org.olat.repository.RepositoryEntry) CourseVOes(org.olat.restapi.support.vo.CourseVOes) Identity(org.olat.core.id.Identity) URI(java.net.URI) Test(org.junit.Test)

Example 10 with CourseVOes

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

the class CoursesTest method testGetCoursesWithPaging.

@Test
public void testGetCoursesWithPaging() throws IOException, URISyntaxException {
    assertTrue(conn.login("administrator", "openolat"));
    URI uri = UriBuilder.fromUri(getContextURI()).path("repo").path("courses").queryParam("start", "0").queryParam("limit", "1").build();
    HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON + ";pagingspec=1.0", true);
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    CourseVOes courses = conn.parse(response, CourseVOes.class);
    assertNotNull(courses);
    assertNotNull(courses.getCourses());
    assertEquals(1, courses.getCourses().length);
}
Also used : HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) CourseVOes(org.olat.restapi.support.vo.CourseVOes) URI(java.net.URI) Test(org.junit.Test)

Aggregations

CourseVOes (org.olat.restapi.support.vo.CourseVOes)16 RepositoryEntry (org.olat.repository.RepositoryEntry)14 CourseVO (org.olat.restapi.support.vo.CourseVO)14 URI (java.net.URI)8 GET (javax.ws.rs.GET)8 Produces (javax.ws.rs.Produces)8 HttpResponse (org.apache.http.HttpResponse)8 HttpGet (org.apache.http.client.methods.HttpGet)8 Test (org.junit.Test)8 Identity (org.olat.core.id.Identity)8 RepositoryManager (org.olat.repository.RepositoryManager)8 InputStream (java.io.InputStream)6 Path (javax.ws.rs.Path)6 ICourse (org.olat.course.ICourse)6 Roles (org.olat.core.id.Roles)2 SearchRepositoryEntryParameters (org.olat.repository.model.SearchRepositoryEntryParameters)2 RestSecurityHelper.getIdentity (org.olat.restapi.security.RestSecurityHelper.getIdentity)2 RestSecurityHelper.getRoles (org.olat.restapi.security.RestSecurityHelper.getRoles)2