use of io.gravitee.rest.api.model.CategoryEntity in project gravitee-management-rest-api by gravitee-io.
the class ApisResourceTest method shouldHaveAllButPromotedApiIfCategoryWithoutHighLightedApi.
@Test
public void shouldHaveAllButPromotedApiIfCategoryWithoutHighLightedApi() throws TechnicalException {
doReturn(new CategoryEntity()).when(categoryService).findById("myCat");
final Response response = target().queryParam("size", 3).queryParam("promoted", false).queryParam("category", "myCat").request().get();
assertEquals(HttpStatusCode.OK_200, response.getStatus());
ArgumentCaptor<ApiEntity> apiEntityCaptor = ArgumentCaptor.forClass(ApiEntity.class);
Mockito.verify(apiMapper, Mockito.times(4)).convert(apiEntityCaptor.capture());
final List<String> allNameValues = apiEntityCaptor.getAllValues().stream().map(a -> a.getName()).collect(Collectors.toList());
assertEquals(4, allNameValues.size());
assertTrue(allNameValues.containsAll(Arrays.asList("3", "4", "5", "6")));
ApisResponse apiResponse = response.readEntity(ApisResponse.class);
assertEquals(3, apiResponse.getData().size());
}
use of io.gravitee.rest.api.model.CategoryEntity in project gravitee-management-rest-api by gravitee-io.
the class ApisResourceTest method shouldHaveAllButPromotedApiIfCategoryWithHighLightedApiNotInFilteredList.
@Test
public void shouldHaveAllButPromotedApiIfCategoryWithHighLightedApiNotInFilteredList() throws TechnicalException {
CategoryEntity myCatEntity = new CategoryEntity();
myCatEntity.setHighlightApi("7");
doReturn(myCatEntity).when(categoryService).findById("myCat");
final Response response = target().queryParam("size", 3).queryParam("promoted", false).queryParam("category", "myCat").request().get();
assertEquals(HttpStatusCode.OK_200, response.getStatus());
ArgumentCaptor<ApiEntity> apiEntityCaptor = ArgumentCaptor.forClass(ApiEntity.class);
Mockito.verify(apiMapper, Mockito.times(4)).convert(apiEntityCaptor.capture());
final List<String> allNameValues = apiEntityCaptor.getAllValues().stream().map(a -> a.getName()).collect(Collectors.toList());
assertEquals(4, allNameValues.size());
assertTrue(allNameValues.containsAll(Arrays.asList("3", "4", "5", "6")));
ApisResponse apiResponse = response.readEntity(ApisResponse.class);
assertEquals(3, apiResponse.getData().size());
}
use of io.gravitee.rest.api.model.CategoryEntity in project gravitee-management-rest-api by gravitee-io.
the class CategoryService_UpdateTest method shouldUpdateCategory_single_mode.
@Test
public void shouldUpdateCategory_single_mode() throws TechnicalException {
UpdateCategoryEntity mockCategory = mock(UpdateCategoryEntity.class);
when(mockCategory.getId()).thenReturn("category-id");
when(mockCategory.getName()).thenReturn("Category ID");
when(mockCategoryRepository.findById("category-id")).thenReturn(Optional.of(new Category()));
Category updatedCategory = mock(Category.class);
when(updatedCategory.getId()).thenReturn("category-id");
when(updatedCategory.getName()).thenReturn("category-name");
when(updatedCategory.getDescription()).thenReturn("category-description");
when(updatedCategory.getOrder()).thenReturn(1);
when(updatedCategory.isHidden()).thenReturn(true);
when(updatedCategory.getUpdatedAt()).thenReturn(new Date(1234567890L));
when(updatedCategory.getCreatedAt()).thenReturn(new Date(9876543210L));
when(mockCategoryRepository.update(argThat(cat -> cat.getUpdatedAt() != null))).thenReturn(updatedCategory);
CategoryEntity category = categoryService.update("category-id", mockCategory);
assertNotNull(category);
assertEquals("Id", "category-id", category.getId());
assertEquals("Name", "category-name", category.getName());
assertEquals("Description", "category-description", category.getDescription());
assertEquals("Total APIs", 0, category.getTotalApis());
assertEquals("Order", 1, category.getOrder());
assertEquals("Hidden", true, category.isHidden());
assertEquals("UpdatedAt", new Date(1234567890L), category.getUpdatedAt());
assertEquals("CreatedAt", new Date(9876543210L), category.getCreatedAt());
verify(mockCategoryRepository, times(1)).findById(any());
verify(mockCategoryRepository, times(1)).update(any());
verify(mockAuditService, times(1)).createEnvironmentAuditLog(any(), eq(CATEGORY_UPDATED), any(), any(), any());
}
use of io.gravitee.rest.api.model.CategoryEntity in project gravitee-management-rest-api by gravitee-io.
the class CategoryResource method updateCategory.
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Update the category", notes = "User must have the PORTAL_CATEGORY[UPDATE] permission to use this service")
@ApiResponses({ @ApiResponse(code = 200, message = "Category successfully updated", response = CategoryEntity.class), @ApiResponse(code = 500, message = "Internal server error") })
@Permissions({ @Permission(value = RolePermission.ENVIRONMENT_CATEGORY, acls = RolePermissionAction.UPDATE) })
public Response updateCategory(@Valid @NotNull final UpdateCategoryEntity category) {
try {
ImageUtils.verify(category.getPicture());
ImageUtils.verify(category.getBackground());
} catch (InvalidImageException e) {
throw new BadRequestException("Invalid image format");
}
CategoryEntity categoryEntity = categoryService.update(categoryId, category);
setPictures(categoryEntity, false);
return Response.ok(categoryEntity).build();
}
use of io.gravitee.rest.api.model.CategoryEntity in project gravitee-management-rest-api by gravitee-io.
the class CategoryResource method getCategory.
@GET
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Get the category", notes = "User must have the PORTAL_CATEGORY[READ] permission to use this service")
@ApiResponses({ @ApiResponse(code = 200, message = "Category's definition", response = CategoryEntity.class), @ApiResponse(code = 500, message = "Internal server error") })
public CategoryEntity getCategory() {
boolean canShowCategory = hasPermission(RolePermission.ENVIRONMENT_CATEGORY, RolePermissionAction.READ);
CategoryEntity category = categoryService.findById(categoryId);
if (!canShowCategory && category.isHidden()) {
throw new UnauthorizedAccessException();
}
// set picture
setPictures(category, false);
return category;
}
Aggregations