Merged changes

This commit is contained in:
Philipp Czora
2018-06-25 15:18:27 +02:00
4 changed files with 37 additions and 39 deletions

View File

@@ -34,17 +34,46 @@ import static sonia.scm.api.v2.resources.ResourceLinks.group;
public class GroupCollectionResource extends AbstractManagerResource<Group, GroupException> {
public static final int DEFAULT_PAGE_SIZE = 10;
private final GroupDtoToGroupMapper dtoToGroupMapper;
private final GroupToGroupDtoMapper groupToDtoMapper;
private final GroupCollectionToDtoMapper groupCollectionToDtoMapper;
@Inject
public GroupCollectionResource(GroupManager manager, GroupDtoToGroupMapper dtoToGroupMapper, GroupToGroupDtoMapper groupToDtoMapper, GroupCollectionToDtoMapper groupCollectionToDtoMapper) {
public GroupCollectionResource(GroupManager manager, GroupDtoToGroupMapper dtoToGroupMapper, GroupCollectionToDtoMapper groupCollectionToDtoMapper) {
super(manager);
this.dtoToGroupMapper = dtoToGroupMapper;
this.groupToDtoMapper = groupToDtoMapper;
this.groupCollectionToDtoMapper = groupCollectionToDtoMapper;
}
/**
* Returns all groups for a given page number with a given page size (default page size is {@value DEFAULT_PAGE_SIZE}).
* <strong>Note:</strong> This method requires admin privileges.
*
* @param request the current request
* @param page the number of the requested page
* @param pageSize the page size (default page size is {@value DEFAULT_PAGE_SIZE})
* @param sortby sort parameter
* @param desc sort direction desc or aesc
* @return
*/
@GET
@Path("")
@TypeHint(GroupDto[].class)
@StatusCodes({
@ResponseCode(code = 200, condition = "success"),
@ResponseCode(code = 403, condition = "forbidden, the current user has no admin privileges"),
@ResponseCode(code = 500, condition = "internal server error")
})
@Override
public Response getAll(@Context Request request,
@DefaultValue("0") @QueryParam("page") int page,
@DefaultValue("" + DEFAULT_PAGE_SIZE) @QueryParam("pageSize") int pageSize,
@QueryParam("sortby") String sortby,
@DefaultValue("false")
@QueryParam("desc") boolean desc) {
PageResult<Group> pageResult = fetchPage(sortby, desc, page, pageSize);
return Response.ok(groupCollectionToDtoMapper.map(page, pageSize, pageResult)).build();
}
/**
* Creates a new group.
* @param groupDto The group to be created.
@@ -70,36 +99,6 @@ public class GroupCollectionResource extends AbstractManagerResource<Group, Grou
return Response.created(URI.create(group(uriInfo).self(group.getName()))).build();
}
/**
* Returns all groups for a given page number with a given page size (default page size is {@value DEFAULT_PAGE_SIZE}).
* <strong>Note:</strong> This method requires admin privileges.
*
* @param request the current request
* @param page the number of the requested page
* @param pageSize the page size (default page size is {@value DEFAULT_PAGE_SIZE})
* @param sortby sort parameter
* @param desc sort direction desc or aesc
* @return
*/
@GET
@Path("")
@TypeHint(GroupDto[].class)
@StatusCodes({
@ResponseCode(code = 200, condition = "success"),
@ResponseCode(code = 403, condition = "forbidden, the current user has no admin privileges"),
@ResponseCode(code = 500, condition = "internal server error")
})
public Response getAll(@Context Request request, @Context UriInfo uriInfo,
@DefaultValue("0") @QueryParam("page") int page,
@DefaultValue("" + DEFAULT_PAGE_SIZE) @QueryParam("pageSize") int pageSize,
@QueryParam("sortby") String sortby,
@DefaultValue("false")
@QueryParam("desc") boolean desc) {
PageResult<Group> pageResult = fetchPage(sortby, desc, page, pageSize);
return Response.ok(groupCollectionToDtoMapper.map(page, pageSize, pageResult)).build();
}
@Override
protected GenericEntity<Collection<Group>> createGenericEntity(Collection<Group> items) {
throw new UnsupportedOperationException();

View File

@@ -33,14 +33,12 @@ import static sonia.scm.api.v2.resources.ResourceLinks.user;
public class UserCollectionResource extends AbstractManagerResource<User, UserException> {
public static final int DEFAULT_PAGE_SIZE = 10;
private final UserDtoToUserMapper dtoToUserMapper;
private final UserToUserDtoMapper userToDtoMapper;
private final UserCollectionToDtoMapper userCollectionToDtoMapper;
@Inject
public UserCollectionResource(UserManager manager, UserDtoToUserMapper dtoToUserMapper, UserToUserDtoMapper userToDtoMapper, UserCollectionToDtoMapper userCollectionToDtoMapper) {
public UserCollectionResource(UserManager manager, UserDtoToUserMapper dtoToUserMapper, UserCollectionToDtoMapper userCollectionToDtoMapper) {
super(manager);
this.dtoToUserMapper = dtoToUserMapper;
this.userToDtoMapper = userToDtoMapper;
this.userCollectionToDtoMapper = userCollectionToDtoMapper;
}
@@ -63,6 +61,7 @@ public class UserCollectionResource extends AbstractManagerResource<User, UserEx
@ResponseCode(code = 403, condition = "forbidden, the current user has no admin privileges"),
@ResponseCode(code = 500, condition = "internal server error")
})
@Override
public Response getAll(@Context Request request,
@DefaultValue("0") @QueryParam("page") int page,
@DefaultValue("" + DEFAULT_PAGE_SIZE) @QueryParam("pageSize") int pageSize,

View File

@@ -73,7 +73,7 @@ public class GroupRootResourceTest {
when(groupManager.get("admin")).thenReturn(group);
GroupCollectionToDtoMapper groupCollectionToDtoMapper = new GroupCollectionToDtoMapper(groupToDtoMapper, uriInfoStore);
GroupCollectionResource groupCollectionResource = new GroupCollectionResource(groupManager, dtoToGroupMapper, groupToDtoMapper, groupCollectionToDtoMapper);
GroupCollectionResource groupCollectionResource = new GroupCollectionResource(groupManager, dtoToGroupMapper, groupCollectionToDtoMapper);
GroupResource groupResource = new GroupResource(groupManager, groupToDtoMapper);
GroupRootResource groupRootResource = new GroupRootResource(MockProvider.of(groupCollectionResource), MockProvider.of(groupResource));

View File

@@ -77,7 +77,7 @@ public class UserRootResourceTest {
doNothing().when(userManager).delete(userCaptor.capture());
UserCollectionToDtoMapper userCollectionToDtoMapper = new UserCollectionToDtoMapper(userToDtoMapper, uriInfoStore);
UserCollectionResource userCollectionResource = new UserCollectionResource(userManager, dtoToUserMapper, userToDtoMapper,
UserCollectionResource userCollectionResource = new UserCollectionResource(userManager, dtoToUserMapper,
userCollectionToDtoMapper);
UserResource userResource = new UserResource(dtoToUserMapper, userToDtoMapper, userManager);
UserRootResource userRootResource = new UserRootResource(MockProvider.of(userCollectionResource), MockProvider.of(userResource));