mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 07:25:44 +01:00
added GroupsResource
This commit is contained in:
@@ -10,7 +10,6 @@ package sonia.scm.api.rest;
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import sonia.scm.Group;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
import com.sun.jersey.api.json.JSONConfiguration;
|
||||
@@ -28,7 +27,6 @@ import javax.xml.bind.JAXBContext;
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@Provider
|
||||
public class JsonJaxbContextResolver implements ContextResolver<JAXBContext>
|
||||
{
|
||||
|
||||
@@ -42,7 +40,7 @@ public class JsonJaxbContextResolver implements ContextResolver<JAXBContext>
|
||||
{
|
||||
this.context = new JSONJAXBContext(
|
||||
JSONConfiguration.mapped().rootUnwrapping(true).arrays(
|
||||
"members").build(), types.toArray(new Class[0]));
|
||||
"member", "groups").build(), types.toArray(new Class[0]));
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
@@ -69,5 +67,6 @@ public class JsonJaxbContextResolver implements ContextResolver<JAXBContext>
|
||||
private JAXBContext context;
|
||||
|
||||
/** Field description */
|
||||
private List<Class> types = Arrays.asList(new Class[] { Group.class });
|
||||
private List<Class> types = Arrays.asList(new Class[] {
|
||||
Group.class });
|
||||
}
|
||||
|
||||
@@ -23,6 +23,10 @@ import javax.ws.rs.core.MediaType;
|
||||
public class UriExtensionsConfig extends PackagesResourceConfig
|
||||
{
|
||||
|
||||
public static final String EXTENSION_XML = "xml";
|
||||
|
||||
public static final String EXTENSION_JSON = "json";
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
@@ -68,8 +72,8 @@ public class UriExtensionsConfig extends PackagesResourceConfig
|
||||
if (mediaTypeMap == null)
|
||||
{
|
||||
mediaTypeMap = new HashMap<String, MediaType>();
|
||||
mediaTypeMap.put("json", MediaType.APPLICATION_JSON_TYPE);
|
||||
mediaTypeMap.put("xml", MediaType.APPLICATION_XML_TYPE);
|
||||
mediaTypeMap.put(EXTENSION_JSON, MediaType.APPLICATION_JSON_TYPE);
|
||||
mediaTypeMap.put(EXTENSION_XML, MediaType.APPLICATION_XML_TYPE);
|
||||
}
|
||||
|
||||
return mediaTypeMap;
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
package sonia.scm.api.rest.resources;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import sonia.scm.Group;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@Singleton
|
||||
@Path("groups")
|
||||
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
|
||||
public class GroupsResource
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*/
|
||||
public GroupsResource()
|
||||
{
|
||||
groupStore = new LinkedHashMap<String, Group>();
|
||||
groupStore.put("csit",
|
||||
new Group("csit", "th", "merlec", "hopper", "oelkersd",
|
||||
"sdorra", "gollnict"));
|
||||
groupStore.put("devel",
|
||||
new Group("devel", "sdorra", "th", "merlec", "oelkersd"));
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param name
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GET
|
||||
@Path("{name}")
|
||||
public Group get(@PathParam("name") String name)
|
||||
{
|
||||
Group group = groupStore.get(name);
|
||||
|
||||
if (group == null)
|
||||
{
|
||||
throw new WebApplicationException(Status.NOT_FOUND);
|
||||
}
|
||||
|
||||
System.out.println( group );
|
||||
|
||||
return group;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GET
|
||||
public Group[] getAll()
|
||||
{
|
||||
Collection<Group> groupCollection = groupStore.values();
|
||||
|
||||
return groupCollection.toArray(new Group[groupCollection.size()]);
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
private LinkedHashMap<String, Group> groupStore;
|
||||
}
|
||||
Reference in New Issue
Block a user