use of org.wso2.carbon.apimgt.rest.api.store.v1.dto.APICategoryDTO in project carbon-apimgt by wso2.
the class ApiCategoriesApiServiceImpl method apiCategoriesPost.
@Override
public Response apiCategoriesPost(APICategoryDTO body, MessageContext messageContext) {
APICategory apiCategory = null;
try {
APIAdmin apiAdmin = new APIAdminImpl();
String userName = RestApiCommonUtil.getLoggedInUsername();
apiCategory = APICategoryMappingUtil.fromCategoryDTOToCategory(body);
if (!org.apache.commons.lang3.StringUtils.isEmpty(apiCategory.getName())) {
String regExSpecialChars = "!@#$%^&*(),?\"{}[\\]|<>";
String regExSpecialCharsReplaced = regExSpecialChars.replaceAll(".", "\\\\$0");
// include \n,\t, space
Pattern pattern = Pattern.compile("[" + regExSpecialCharsReplaced + "\\s" + "]");
Matcher matcher = pattern.matcher(apiCategory.getName());
if (matcher.find()) {
RestApiUtil.handleBadRequest("Name field contains special characters.", log);
}
if (apiCategory.getName().length() > 255) {
RestApiUtil.handleBadRequest("API Category name is too long.", log);
}
} else {
RestApiUtil.handleBadRequest("API Category name is empty.", log);
}
String organization = RestApiUtil.getOrganization(messageContext);
APICategoryDTO categoryDTO = APICategoryMappingUtil.fromCategoryToCategoryDTO(apiAdmin.addCategory(apiCategory, userName, organization));
URI location = new URI(RestApiConstants.RESOURCE_PATH_CATEGORY + "/" + categoryDTO.getId());
return Response.created(location).entity(categoryDTO).build();
} catch (APIManagementException | URISyntaxException e) {
String errorMessage = "Error while adding new API Category '" + body.getName() + "' - " + e.getMessage();
RestApiUtil.handleInternalServerError(errorMessage, e, log);
}
return null;
}
use of org.wso2.carbon.apimgt.rest.api.store.v1.dto.APICategoryDTO in project carbon-apimgt by wso2.
the class ApiCategoriesApiServiceImpl method apiCategoriesApiCategoryIdPut.
@Override
public Response apiCategoriesApiCategoryIdPut(String apiCategoryId, APICategoryDTO body, MessageContext messageContext) {
try {
APIAdmin apiAdmin = new APIAdminImpl();
String organization = RestApiUtil.getOrganization(messageContext);
int tenantID = APIUtil.getInternalOrganizationId(organization);
APICategory apiCategoryToUpdate = APICategoryMappingUtil.fromCategoryDTOToCategory(body);
APICategory apiCategoryOriginal = apiAdmin.getAPICategoryByID(apiCategoryId);
if (apiCategoryOriginal == null) {
String errorMsg = "No API category with the given category ID exists: " + apiCategoryId;
throw new APIManagementException(errorMsg);
}
// Override several properties as they are not allowed to be updated
apiCategoryToUpdate.setName(apiCategoryOriginal.getName());
apiCategoryToUpdate.setId(apiCategoryOriginal.getId());
apiCategoryToUpdate.setTenantID(apiCategoryOriginal.getTenantID());
apiCategoryToUpdate.setOrganization(organization);
// We allow to update API Category name given that the new category name is not taken yet
String oldName = apiCategoryOriginal.getName();
String updatedName = apiCategoryToUpdate.getName();
if (!oldName.equals(updatedName) && apiAdmin.isCategoryNameExists(updatedName, apiCategoryId, organization)) {
String errorMsg = "An API category already exists by the new API category name :" + updatedName;
throw new APIManagementException(errorMsg);
}
apiAdmin.updateCategory(apiCategoryToUpdate);
APICategory updatedAPICategory = apiAdmin.getAPICategoryByID(apiCategoryId);
APICategoryDTO updatedAPICategoryDTO = APICategoryMappingUtil.fromCategoryToCategoryDTO(updatedAPICategory);
return Response.ok().entity(updatedAPICategoryDTO).build();
} catch (APIManagementException e) {
String errorMessage = "Error while updating API Category '" + body.getName() + "' - " + e.getMessage();
RestApiUtil.handleInternalServerError(errorMessage, e, log);
}
return null;
}
use of org.wso2.carbon.apimgt.rest.api.store.v1.dto.APICategoryDTO in project carbon-apimgt by wso2.
the class APICategoryMappingUtil method fromCategoryListToCategoryDTOList.
/**
* Converts api category List to CategoryDTO List.
*
* @param categories List of api categories
* @return CategoryDTO list
*/
private static List<APICategoryDTO> fromCategoryListToCategoryDTOList(List<APICategory> categories) {
List<APICategoryDTO> categoryDTOs = new ArrayList<>();
for (APICategory category : categories) {
APICategoryDTO categoryDTO = new APICategoryDTO();
categoryDTO.setId(category.getId());
categoryDTO.setName(category.getName());
categoryDTO.setDescription(category.getDescription() == null ? "" : category.getDescription());
categoryDTOs.add(categoryDTO);
}
return categoryDTOs;
}
use of org.wso2.carbon.apimgt.rest.api.store.v1.dto.APICategoryDTO in project carbon-apimgt by wso2.
the class APICategoryMappingUtilTestCase method testCategoryDescriptionNull.
@Test
public void testCategoryDescriptionNull() throws Exception {
APICategory category = new APICategory();
category.setDescription(null);
category.setName("test");
List<APICategory> categories = new ArrayList<APICategory>();
categories.add(category);
APICategoryListDTO ListDto = APICategoryMappingUtil.fromCategoryListToCategoryListDTO(categories);
APICategoryDTO dto = ListDto.getList().get(0);
Assert.assertEquals("Category is null", "", dto.getDescription());
}
Aggregations