mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-13 00:45:44 +01:00
Use class for resource links
This commit is contained in:
@@ -20,8 +20,11 @@ import javax.ws.rs.core.GenericEntity;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.Collection;
|
||||
|
||||
import static sonia.scm.api.v2.resources.ResourceLinks.group;
|
||||
|
||||
@Produces(VndMediaType.GROUP_COLLECTION)
|
||||
public class GroupCollectionResource extends AbstractManagerResource<Group, GroupException> {
|
||||
public static final int DEFAULT_PAGE_SIZE = 10;
|
||||
@@ -54,11 +57,8 @@ public class GroupCollectionResource extends AbstractManagerResource<Group, Grou
|
||||
@Consumes(VndMediaType.GROUP)
|
||||
public Response create(@Context UriInfo uriInfo, GroupDto groupDto) throws IOException, GroupException {
|
||||
Group group = dtoToGroupMapper.map(groupDto);
|
||||
System.out.println(group);
|
||||
manager.create(group);
|
||||
|
||||
LinkBuilder builder = new LinkBuilder(uriInfo, GroupV2Resource.class, GroupSubResource.class);
|
||||
return Response.created(builder.method("getGroupSubResource").parameters(group.getName()).method("get").parameters().create()).build();
|
||||
return Response.created(URI.create(group(uriInfo).self(group.getName()))).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,14 +38,14 @@ class LinkBuilder {
|
||||
this.calls = calls;
|
||||
}
|
||||
|
||||
public Parameters method(String method) {
|
||||
Parameters method(String method) {
|
||||
if (calls.size() >= classes.length) {
|
||||
throw new IllegalStateException("no more classes for methods");
|
||||
}
|
||||
return new Parameters(method);
|
||||
}
|
||||
|
||||
public URI create() {
|
||||
URI create() {
|
||||
if (calls.size() < classes.length) {
|
||||
throw new IllegalStateException("not enough methods for all classes");
|
||||
}
|
||||
@@ -56,7 +56,7 @@ class LinkBuilder {
|
||||
return absoluteUri;
|
||||
}
|
||||
|
||||
public String href() {
|
||||
String href() {
|
||||
return create().toString();
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ class LinkBuilder {
|
||||
this.method = method;
|
||||
}
|
||||
|
||||
public LinkBuilder parameters(String... parameters) {
|
||||
LinkBuilder parameters(String... parameters) {
|
||||
return LinkBuilder.this.add(method, parameters);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +24,11 @@ import javax.ws.rs.core.Request;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.Collection;
|
||||
|
||||
import static sonia.scm.api.v2.resources.ResourceLinks.user;
|
||||
|
||||
@Produces(VndMediaType.USER_COLLECTION)
|
||||
public class UserCollectionResource extends AbstractManagerResource<User, UserException> {
|
||||
public static final int DEFAULT_PAGE_SIZE = 10;
|
||||
@@ -87,9 +90,7 @@ public class UserCollectionResource extends AbstractManagerResource<User, UserEx
|
||||
public Response create(@Context UriInfo uriInfo, UserDto userDto) throws IOException, UserException {
|
||||
User user = dtoToUserMapper.map(userDto, "");
|
||||
manager.create(user);
|
||||
|
||||
LinkBuilder builder = new LinkBuilder(uriInfo, UserV2Resource.class, UserSubResource.class);
|
||||
return Response.created(builder.method("getUserSubResource").parameters(user.getName()).method("get").parameters().create()).build();
|
||||
return Response.created(URI.create(user(uriInfo).self(user.getName()))).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user