Search in sources :

Example 36 with CatalogEntryVO

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

the class CatalogTest method testGetRoots.

@Test
public void testGetRoots() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    URI uri = UriBuilder.fromUri(getContextURI()).path("catalog").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<CatalogEntryVO> vos = parseEntryArray(body);
    assertNotNull(vos);
    // Root-1
    assertEquals(1, vos.size());
    conn.shutdown();
}
Also used : InputStream(java.io.InputStream) CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) Test(org.junit.Test)

Example 37 with CatalogEntryVO

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

the class CatalogTest method testGetChild.

@Test
public void testGetChild() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    URI uri = UriBuilder.fromUri(getContextURI()).path("catalog").path(entry1.getKey().toString()).build();
    HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    CatalogEntryVO vo = conn.parse(response, CatalogEntryVO.class);
    assertNotNull(vo);
    assertEquals(entry1.getName(), vo.getName());
    assertEquals(entry1.getDescription(), vo.getDescription());
    conn.shutdown();
}
Also used : CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) Test(org.junit.Test)

Example 38 with CatalogEntryVO

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

the class CatalogTest method testUpdateCatalogEntryJson.

@Test
public void testUpdateCatalogEntryJson() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    CatalogEntryVO entry = new CatalogEntryVO();
    entry.setName("Entry-1-b");
    entry.setDescription("Entry-description-1-b");
    entry.setType(CatalogEntry.TYPE_NODE);
    URI uri = UriBuilder.fromUri(getContextURI()).path("catalog").path(entry1.getKey().toString()).build();
    HttpPost method = conn.createPost(uri, MediaType.APPLICATION_JSON);
    method.addHeader("Content-Type", MediaType.APPLICATION_JSON);
    conn.addJsonEntity(method, entry);
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    CatalogEntryVO vo = conn.parse(response, CatalogEntryVO.class);
    assertNotNull(vo);
    CatalogEntry updatedEntry = catalogManager.loadCatalogEntry(entry1);
    assertEquals("Entry-1-b", updatedEntry.getName());
    assertEquals("Entry-description-1-b", updatedEntry.getDescription());
    conn.shutdown();
}
Also used : HttpPost(org.apache.http.client.methods.HttpPost) CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) CatalogEntry(org.olat.repository.CatalogEntry) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) Test(org.junit.Test)

Example 39 with CatalogEntryVO

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

the class CatalogWebService method getCatalogEntry.

/**
 * Returns the metadata of the catalog entry.
 * @response.representation.200.qname {http://www.example.com}catalogEntryVO
 * @response.representation.200.mediaType application/xml, application/json
 * @response.representation.200.doc The catalog entry
 * @response.representation.200.example {@link org.olat.restapi.support.vo.Examples#SAMPLE_CATALOGENTRYVO}
 * @response.representation.401.doc The path could not be resolved to a valid catalog entry
 * @param path The path
 * @param uriInfo The URI informations
 * @param httpRequest The HTTP request
 * @param request The REST request
 * @return The response
 */
@GET
@Path("{path:.*}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response getCatalogEntry(@PathParam("path") List<PathSegment> path, @Context UriInfo uriInfo, @Context HttpServletRequest httpRequest, @Context Request request) {
    if (path.isEmpty()) {
        return getRoots(httpRequest, request);
    }
    Long ceKey = getCatalogEntryKeyFromPath(path);
    if (ceKey == null) {
        return Response.serverError().status(Status.NOT_ACCEPTABLE).build();
    }
    CatalogEntry ce = catalogManager.loadCatalogEntry(ceKey);
    if (ce == null) {
        return Response.serverError().status(Status.NOT_FOUND).build();
    }
    CatalogEntryVO vo = link(get(ce), uriInfo);
    return Response.ok(vo).build();
}
Also used : CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) CatalogEntry(org.olat.repository.CatalogEntry) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Example 40 with CatalogEntryVO

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

the class CatalogWebService method addCatalogEntry.

/**
 * Adds a catalog entry under the path specified in the URL.
 * @response.representation.200.qname {http://www.example.com}catalogEntryVO
 * @response.representation.200.mediaType application/xml, application/json
 * @response.representation.200.doc The catalog entry
 * @response.representation.200.example {@link org.olat.restapi.support.vo.Examples#SAMPLE_CATALOGENTRYVO}
 * @response.representation.401.doc Not authorized
 * @response.representation.404.doc The path could not be resolved to a valid catalog entry
 * @param path The path
 * @param name The name
 * @param description The description
 * @param type The type (leaf or node)
 * @param repoEntryKey The id of the repository entry
 * @param httpRquest The HTTP request
 * @param uriInfo The URI informations
 * @return The response
 */
@PUT
@Path("{path:.*}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response addCatalogEntry(@PathParam("path") List<PathSegment> path, @QueryParam("name") String name, @QueryParam("description") String description, @QueryParam("type") Integer type, @QueryParam("repoEntryKey") Long repoEntryKey, @Context HttpServletRequest httpRequest, @Context UriInfo uriInfo) {
    CatalogEntryVO entryVo = new CatalogEntryVO();
    entryVo.setName(name);
    entryVo.setDescription(description);
    if (type != null) {
        entryVo.setType(type.intValue());
    }
    entryVo.setRepositoryEntryKey(repoEntryKey);
    return addCatalogEntry(path, entryVo, httpRequest, uriInfo);
}
Also used : CatalogEntryVO(org.olat.restapi.support.vo.CatalogEntryVO) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) PUT(javax.ws.rs.PUT)

Aggregations

CatalogEntryVO (org.olat.restapi.support.vo.CatalogEntryVO)44 CatalogEntry (org.olat.repository.CatalogEntry)30 URI (java.net.URI)24 HttpResponse (org.apache.http.HttpResponse)24 Test (org.junit.Test)24 Produces (javax.ws.rs.Produces)16 Path (javax.ws.rs.Path)14 HttpPost (org.apache.http.client.methods.HttpPost)10 HttpPut (org.apache.http.client.methods.HttpPut)8 Consumes (javax.ws.rs.Consumes)6 GET (javax.ws.rs.GET)6 POST (javax.ws.rs.POST)6 HttpGet (org.apache.http.client.methods.HttpGet)6 BasicNameValuePair (org.apache.http.message.BasicNameValuePair)6 RepositoryEntry (org.olat.repository.RepositoryEntry)6 InputStream (java.io.InputStream)4 PUT (javax.ws.rs.PUT)4 WebApplicationException (javax.ws.rs.WebApplicationException)4 Identity (org.olat.core.id.Identity)4 LockResult (org.olat.core.util.coordinate.LockResult)4