use of org.olat.restapi.support.vo.CourseVOes in project OpenOLAT by OpenOLAT.
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);
}
use of org.olat.restapi.support.vo.CourseVOes in project OpenOLAT by OpenOLAT.
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();
}
use of org.olat.restapi.support.vo.CourseVOes in project OpenOLAT by OpenOLAT.
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();
}
use of org.olat.restapi.support.vo.CourseVOes in project OpenOLAT by OpenOLAT.
the class UserCoursesWebService method getFavoritCourses.
/**
* Retrieves the list of my favorite 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 favorite courses
*/
@GET
@Path("favorite")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response getFavoritCourses(@QueryParam("start") @DefaultValue("0") Integer start, @QueryParam("limit") @DefaultValue("25") Integer limit, @Context HttpServletRequest httpRequest, @Context Request request) {
List<String> courseType = Collections.singletonList("CourseModule");
RepositoryManager rm = RepositoryManager.getInstance();
if (MediaTypeVariants.isPaged(httpRequest, request)) {
List<RepositoryEntry> repoEntries = rm.getFavoritLearningResourcesAsTeacher(identity, courseType, start, limit, RepositoryEntryOrder.nameAsc);
int totalCount;
if (repoEntries.size() < limit) {
totalCount = repoEntries.size();
} else {
totalCount = rm.countFavoritLearningResourcesAsTeacher(identity, courseType);
}
CourseVO[] vos = toCourseVo(repoEntries);
CourseVOes voes = new CourseVOes();
voes.setCourses(vos);
voes.setTotalCount(totalCount);
return Response.ok(voes).build();
} else {
List<RepositoryEntry> repoEntries = rm.getFavoritLearningResourcesAsTeacher(identity, courseType, 0, -1, RepositoryEntryOrder.nameAsc);
CourseVO[] vos = toCourseVo(repoEntries);
return Response.ok(vos).build();
}
}
use of org.olat.restapi.support.vo.CourseVOes in project OpenOLAT by OpenOLAT.
the class UserCoursesWebService method getMyCourses.
/**
* Retrieves the list of "My entries" 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 entries
*/
@GET
@Path("my")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response getMyCourses(@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.getLearningResourcesAsStudent(identity, null, start, limit, RepositoryEntryOrder.nameAsc);
int totalCount = rm.countLearningResourcesAsStudent(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.getLearningResourcesAsStudent(identity, null, 0, -1, RepositoryEntryOrder.nameAsc);
CourseVO[] vos = toCourseVo(repoEntries);
return Response.ok(vos).build();
}
}
Aggregations