use of com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult in project entando-core by entando.
the class PageModelService method getPageModels.
@Override
public PagedMetadata<PageModelDto> getPageModels(RestListRequest restListReq) {
try {
// transforms the filters by overriding the key specified in the request with the correct one known by the dto
List<FieldSearchFilter> filters = new ArrayList<FieldSearchFilter>(restListReq.buildFieldSearchFilters());
filters.stream().filter(i -> i.getKey() != null).forEach(i -> i.setKey(PageModelDto.getEntityFieldName(i.getKey())));
SearcherDaoPaginatedResult<PageModel> pageModels = this.getPageModelManager().searchPageModels(filters);
List<PageModelDto> dtoList = null;
if (null != pageModels) {
dtoList = this.getDtoBuilder().convert(pageModels.getList());
}
PagedMetadata<PageModelDto> pagedMetadata = new PagedMetadata<>(restListReq, pageModels);
pagedMetadata.setBody(dtoList);
return pagedMetadata;
} catch (Throwable t) {
logger.error("error in search pageModels", t);
throw new RestServerError("error in search pageModels", t);
}
}
use of com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult in project entando-core by entando.
the class UserService method getUsers.
@Override
public PagedMetadata<UserDto> getUsers(RestListRequest requestList) {
try {
// transforms the filters by overriding the key specified in the request with the correct one known by the dto
List<FieldSearchFilter> filters = new ArrayList<FieldSearchFilter>(requestList.buildFieldSearchFilters());
filters.stream().filter(i -> ((i.getKey() != null) && (UserDto.getEntityFieldName(i.getKey()) != null))).forEach(i -> i.setKey(UserDto.getEntityFieldName(i.getKey())));
List<UserDetails> users = null;
if (filters.size() > 0) {
String text = (String) filters.get(0).getValue();
users = this.getUserManager().searchUsers(text);
} else {
users = this.getUserManager().getUsers();
}
List<UserDto> dtoList = dtoBuilder.convert(users);
SearcherDaoPaginatedResult<UserDetails> result = new SearcherDaoPaginatedResult<>(users.size(), users);
PagedMetadata<UserDto> pagedMetadata = new PagedMetadata<>(requestList, result);
pagedMetadata.setBody(dtoList);
return pagedMetadata;
} catch (Throwable t) {
logger.error("error in search groups", t);
throw new RestServerError("error in search groups", t);
}
}
use of com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult in project entando-core by entando.
the class PageService method getPageReferences.
@Override
public PagedMetadata<?> getPageReferences(String pageCode, String managerName, RestListRequest requestList) {
IPage page = this.getPageManager().getDraftPage(pageCode);
if (null == page) {
logger.warn("no page found with code {}", pageCode);
throw new ResourceNotFoundException(ERRCODE_PAGE_NOT_FOUND, "page", pageCode);
}
PageServiceUtilizer<?> utilizer = this.getPageServiceUtilizer(managerName);
if (null == utilizer) {
logger.warn("no references found for {}", managerName);
throw new ResourceNotFoundException(ERRCODE_PAGE_REFERENCES, "reference", managerName);
}
List<?> dtoList = utilizer.getPageUtilizer(pageCode);
List<?> subList = requestList.getSublist(dtoList);
SearcherDaoPaginatedResult<?> pagedResult = new SearcherDaoPaginatedResult<>(dtoList.size(), subList);
PagedMetadata<Object> pagedMetadata = new PagedMetadata<>(requestList, pagedResult);
pagedMetadata.setBody((List<Object>) subList);
return pagedMetadata;
}
use of com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult in project entando-core by entando.
the class RoleService method getRoles.
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public PagedMetadata<RoleDto> getRoles(RestListRequest restRequest) {
List<Role> roles = this.getRoleManager().getRoles();
roles = sortRoleList(restRequest, roles);
if (null != restRequest.getFilters()) {
for (Filter f : restRequest.getFilters()) {
if (f.getAttributeName().equals(KEY_FILTER_ROLE_CODE)) {
roles = roles.stream().filter(i -> i.getName().toLowerCase().contains(f.getValue().toLowerCase())).collect(Collectors.toList());
}
if (f.getAttributeName().equals(KEY_FILTER_ROLE_DESCR)) {
roles = roles.stream().filter(i -> i.getDescription().toLowerCase().contains(f.getValue().toLowerCase())).collect(Collectors.toList());
}
}
}
List<Role> subList = restRequest.getSublist(roles);
List<RoleDto> dtoSlice = this.getDtoBuilder().convert(subList);
SearcherDaoPaginatedResult<RoleDto> paginatedResult = new SearcherDaoPaginatedResult(roles.size(), dtoSlice);
PagedMetadata<RoleDto> pagedMetadata = new PagedMetadata<>(restRequest, paginatedResult);
pagedMetadata.setBody(dtoSlice);
return pagedMetadata;
}
use of com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult in project entando-core by entando.
the class UserService method getUsers.
@Override
public PagedMetadata<UserDto> getUsers(RestListRequest requestList, String withProfile) {
try {
// transforms the filters by overriding the key specified in the request with the correct one known by the dto
List<FieldSearchFilter> filters = new ArrayList<>(requestList.buildFieldSearchFilters());
List<EntitySearchFilter> entityFilters = new ArrayList<>(requestList.buildEntitySearchFilters());
filters.stream().filter(i -> ((i.getKey() != null) && (UserDto.getEntityFieldName(i.getKey()) != null))).forEach(i -> i.setKey(UserDto.getEntityFieldName(i.getKey())));
List<String> userNames = null;
List<UserDetails> users = new ArrayList<>(), allUsers = new ArrayList<>();
// username filter
List<FieldSearchFilter> usernameFilter = filters.stream().filter(filter -> filter.getValue() != null && filter.getKey().equals("username")).collect(Collectors.toList());
if (usernameFilter.size() > 0) {
String text = (String) filters.get(0).getValue();
userNames = this.getUserManager().searchUsernames(text);
} else {
userNames = this.getUserManager().getUsernames();
}
userNames.forEach(username -> allUsers.add(this.loadUser(username)));
// Profile and attributes filters
users.addAll(allUsers.stream().filter(user -> (withProfile == null || withProfile.equals("1")) && checkAttributesFilter(filters, entityFilters, user)).collect(Collectors.toList()));
List<UserDto> dtoList = dtoBuilder.convert(users);
SearcherDaoPaginatedResult<UserDetails> result = new SearcherDaoPaginatedResult<>(users.size(), users);
PagedMetadata<UserDto> pagedMetadata = new PagedMetadata<>(requestList, result);
pagedMetadata.setBody(dtoList);
pagedMetadata.imposeLimits();
return pagedMetadata;
} catch (Throwable t) {
logger.error("error in search users", t);
throw new RestServerError("error in search users", t);
}
}
Aggregations