use of org.olat.restapi.support.vo.LinkVO in project OpenOLAT by OpenOLAT.
the class CoursesResourcesFoldersTest method testGetFilesDeeper.
@Test
public void testGetFilesDeeper() throws IOException, URISyntaxException {
assertTrue(conn.login("administrator", "openolat"));
URI uri = UriBuilder.fromUri(getCourseFolderURI()).path("SubDir").path("SubSubDir").path("SubSubSubDir").build();
HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
assertEquals(200, response.getStatusLine().getStatusCode());
InputStream body = response.getEntity().getContent();
List<LinkVO> links = parseLinkArray(body);
assertNotNull(links);
assertEquals(1, links.size());
assertEquals("3_singlepage.html", links.get(0).getTitle());
}
use of org.olat.restapi.support.vo.LinkVO in project OpenOLAT by OpenOLAT.
the class CoursesResourcesFoldersTest method testGetFiles.
@Test
public void testGetFiles() throws IOException, URISyntaxException {
assertTrue(conn.login("administrator", "openolat"));
URI uri = UriBuilder.fromUri(getCourseFolderURI()).build();
HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
assertEquals(200, response.getStatusLine().getStatusCode());
InputStream body = response.getEntity().getContent();
List<LinkVO> links = parseLinkArray(body);
assertNotNull(links);
assertEquals(3, links.size());
}
use of org.olat.restapi.support.vo.LinkVO in project OpenOLAT by OpenOLAT.
the class CourseResourceFolderWebService method getFiles.
public Response getFiles(Long courseId, List<PathSegment> path, FolderType type, UriInfo uriInfo, HttpServletRequest httpRequest, Request request) {
if (!isAuthor(httpRequest)) {
return Response.serverError().status(Status.UNAUTHORIZED).build();
}
ICourse course = CoursesWebService.loadCourse(courseId);
if (course == null) {
return Response.serverError().status(Status.NOT_FOUND).build();
}
VFSContainer container = null;
RepositoryEntry re = null;
switch(type) {
case COURSE_FOLDER:
container = course.getCourseFolderContainer();
break;
case SHARED_FOLDER:
{
container = null;
String sfSoftkey = course.getCourseConfig().getSharedFolderSoftkey();
OLATResource sharedResource = CoreSpringFactory.getImpl(RepositoryService.class).loadRepositoryEntryResourceBySoftKey(sfSoftkey);
if (sharedResource != null) {
re = CoreSpringFactory.getImpl(RepositoryService.class).loadByResourceKey(sharedResource.getKey());
container = SharedFolderManager.getInstance().getNamedSharedFolder(re, true);
CourseConfig courseConfig = course.getCourseConfig();
if (courseConfig.isSharedFolderReadOnlyMount()) {
container.setLocalSecurityCallback(new ReadOnlyCallback());
}
}
break;
}
}
if (container == null) {
return Response.serverError().status(Status.NOT_FOUND).build();
}
VFSLeaf leaf = null;
for (PathSegment seg : path) {
VFSItem item = container.resolve(seg.getPath());
if (item instanceof VFSLeaf) {
leaf = (VFSLeaf) item;
break;
} else if (item instanceof VFSContainer) {
container = (VFSContainer) item;
}
}
if (leaf != null) {
Date lastModified = new Date(leaf.getLastModified());
Response.ResponseBuilder response = request.evaluatePreconditions(lastModified);
if (response == null) {
String mimeType = WebappHelper.getMimeType(leaf.getName());
if (mimeType == null)
mimeType = MediaType.APPLICATION_OCTET_STREAM;
response = Response.ok(leaf.getInputStream(), mimeType).lastModified(lastModified).cacheControl(cc);
}
return response.build();
}
List<VFSItem> items = container.getItems(new SystemItemFilter());
int count = 0;
LinkVO[] links = new LinkVO[items.size()];
for (VFSItem item : items) {
UriBuilder baseUriBuilder = uriInfo.getBaseUriBuilder();
UriBuilder repoUri = baseUriBuilder.path(CourseResourceFolderWebService.class).path("files");
if (type.equals(FolderType.SHARED_FOLDER) && re != null) {
repoUri = baseUriBuilder.replacePath("restapi").path(SharedFolderWebService.class).path(re.getKey().toString()).path("files");
}
for (PathSegment pathSegment : path) {
repoUri.path(pathSegment.getPath());
}
String uri = repoUri.path(item.getName()).build(courseId).toString();
links[count++] = new LinkVO("self", uri, item.getName());
}
return Response.ok(links).build();
}
use of org.olat.restapi.support.vo.LinkVO in project OpenOLAT by OpenOLAT.
the class SharedFolderTest method getDirectories.
/**
* Check simple GET for the directory.
*
* @throws IOException
* @throws URISyntaxException
*/
@Test
public void getDirectories() throws IOException, URISyntaxException {
RestConnection conn = new RestConnection();
Assert.assertTrue(conn.login("administrator", "openolat"));
Identity owner = JunitTestHelper.createAndPersistIdentityAsRndUser("shared-owner-");
RepositoryEntry sharedFolder = new SharedFolderHandler().createResource(owner, "Shared 1", "A shared folder", null, Locale.ENGLISH);
VFSContainer container = SharedFolderManager.getInstance().getNamedSharedFolder(sharedFolder, true);
copyFileInResourceFolder(container, "portrait.jpg", "1_");
URI uri = UriBuilder.fromUri(getFolderURI(sharedFolder)).build();
HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
Assert.assertEquals(200, response.getStatusLine().getStatusCode());
InputStream body = response.getEntity().getContent();
List<LinkVO> links = parseLinkArray(body);
Assert.assertNotNull(links);
Assert.assertEquals(1, links.size());
Assert.assertTrue(links.get(0).getHref().contains("1_portrait.jpg"));
conn.shutdown();
}
use of org.olat.restapi.support.vo.LinkVO in project openolat by klemens.
the class SharedFolderTest method getDirectories.
/**
* Check simple GET for the directory.
*
* @throws IOException
* @throws URISyntaxException
*/
@Test
public void getDirectories() throws IOException, URISyntaxException {
RestConnection conn = new RestConnection();
Assert.assertTrue(conn.login("administrator", "openolat"));
Identity owner = JunitTestHelper.createAndPersistIdentityAsRndUser("shared-owner-");
RepositoryEntry sharedFolder = new SharedFolderHandler().createResource(owner, "Shared 1", "A shared folder", null, Locale.ENGLISH);
VFSContainer container = SharedFolderManager.getInstance().getNamedSharedFolder(sharedFolder, true);
copyFileInResourceFolder(container, "portrait.jpg", "1_");
URI uri = UriBuilder.fromUri(getFolderURI(sharedFolder)).build();
HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
Assert.assertEquals(200, response.getStatusLine().getStatusCode());
InputStream body = response.getEntity().getContent();
List<LinkVO> links = parseLinkArray(body);
Assert.assertNotNull(links);
Assert.assertEquals(1, links.size());
Assert.assertTrue(links.get(0).getHref().contains("1_portrait.jpg"));
conn.shutdown();
}
Aggregations