List of usage examples for org.springframework.data.domain Sort Sort
private Sort(Direction direction, List<String> properties)
From source file:org.fao.geonet.api.records.MetadataWorkflowApi.java
@ApiOperation(value = "Get record status history", notes = "", nickname = "getRecordStatusHistory") @RequestMapping(value = "/{metadataUuid}/status", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET) @ResponseStatus(value = HttpStatus.OK)/* w w w . j a va 2 s. com*/ @ResponseBody public List<MetadataStatusResponse> getRecordStatusHistory( @ApiParam(value = API_PARAM_RECORD_UUID, required = true) @PathVariable String metadataUuid, @RequestParam(required = false) boolean details, @ApiParam(value = "Sort direction", required = false) @RequestParam(defaultValue = "DESC") Sort.Direction sortOrder, HttpServletRequest request) throws Exception { ServiceContext context = ApiUtils.createServiceContext(request); AbstractMetadata metadata = ApiUtils.canViewRecord(metadataUuid, request); MetadataStatusRepositoryCustom metadataStatusRepository = ApplicationContextHolder.get() .getBean(MetadataStatusRepository.class); String sortField = SortUtils.createPath(MetadataStatus_.id, MetadataStatusId_.changeDate); List<MetadataStatus> listOfStatus = ((MetadataStatusRepository) metadataStatusRepository) .findAllById_MetadataId(metadata.getId(), new Sort(sortOrder, sortField)); List<MetadataStatusResponse> response = buildMetadataStatusResponses(listOfStatus, details, context.getLanguage()); // TODO: Add paging return response; }
From source file:org.fao.geonet.api.records.MetadataWorkflowApi.java
@ApiOperation(value = "Get record status history by type", notes = "", nickname = "getRecordStatusHistoryByType") @RequestMapping(value = "/{metadataUuid}/status/{type}", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET) @ResponseStatus(value = HttpStatus.OK)// w ww . j ava 2s .c o m @ResponseBody public List<MetadataStatusResponse> getRecordStatusHistoryByType( @ApiParam(value = API_PARAM_RECORD_UUID, required = true) @PathVariable String metadataUuid, @ApiParam(value = "Type", required = true) @PathVariable StatusValueType type, @RequestParam(required = false) boolean details, @ApiParam(value = "Sort direction", required = false) @RequestParam(defaultValue = "DESC") Sort.Direction sortOrder, HttpServletRequest request) throws Exception { ServiceContext context = ApiUtils.createServiceContext(request); AbstractMetadata metadata = ApiUtils.canViewRecord(metadataUuid, request); MetadataStatusRepositoryCustom metadataStatusRepository = ApplicationContextHolder.get() .getBean(MetadataStatusRepository.class); String sortField = SortUtils.createPath(MetadataStatus_.id, MetadataStatusId_.changeDate); List<MetadataStatus> listOfStatus = metadataStatusRepository.findAllByIdAndByType(metadata.getId(), type, new Sort(sortOrder, sortField)); List<MetadataStatusResponse> response = buildMetadataStatusResponses(listOfStatus, details, context.getLanguage()); // TODO: Add paging return response; }
From source file:org.fao.geonet.services.reports.ReportDataDownloads.java
public Element exec(Element params, ServiceContext context) throws Exception { // Process parameters String beginDate = Util.getParam(params, "dateFrom"); String endDate = Util.getParam(params, "dateTo"); beginDate = beginDate + "T00:00:00"; endDate = endDate + "T23:59:59"; ISODate beginDateIso = new ISODate(beginDate); ISODate endDateIso = new ISODate(endDate); Set<Integer> groupList = ReportUtils.groupsForFilter(context, params); // Retrieve metadata file downloads final Sort sort = new Sort(Sort.Direction.ASC, SortUtils.createPath(MetadataFileDownload_.downloadDate)); final List<MetadataFileDownload> records = context.getBean(MetadataFileDownloadRepository.class).findAll( MetadataFileDownloadSpecs.downloadDateBetweenAndByGroups(beginDateIso, endDateIso, groupList), sort);/*from w w w .j a va 2s . c o m*/ // Process metadata results for the report Element response = new Element(Jeeves.Elem.RESPONSE); MetadataFileUploadRepository uploadRepo = context.getBean(MetadataFileUploadRepository.class); for (MetadataFileDownload fileDownload : records) { // User should be the user that uploaded the file int fileUploadId = fileDownload.getFileUploadId(); MetadataFileUpload metadataFileUpload = uploadRepo.findOne(MetadataFileUploadSpecs.hasId(fileUploadId)); User user = context.getBean(UserRepository.class).findOneByUsername(metadataFileUpload.getUserName()); String username = user.getUsername(); String name = (user.getName() != null ? user.getName() : ""); String surname = (user.getSurname() != null ? user.getSurname() : ""); String email = (user.getEmail() != null ? user.getEmail() : ""); String profile = user.getProfile().name(); String requesterName = fileDownload.getRequesterName(); String requesterMail = fileDownload.getRequesterMail(); if (StringUtils.isEmpty(requesterName) && StringUtils.isNotEmpty(fileDownload.getUserName())) { User userDownload = context.getBean(UserRepository.class) .findOneByUsername(fileDownload.getUserName()); requesterName = userDownload.getName() + " " + userDownload.getSurname(); requesterMail = userDownload.getEmail(); } // Get metadata title/uuid from index String metadataTitle = ReportUtils.retrieveMetadataTitle(context, fileDownload.getMetadataId()); String metadataUuid = ReportUtils.retrieveMetadataUuid(context, fileDownload.getMetadataId()); // Build the record element with the information for the report Element metadataEl = new Element("record"); metadataEl.addContent(new Element("uuid").setText(metadataUuid)) .addContent(new Element("recordName").setText(metadataTitle)) .addContent(new Element("filename").setText(fileDownload.getFileName())) .addContent(new Element("downloaddate").setText(fileDownload.getDownloadDate())) .addContent(new Element("requestername").setText(requesterName)) .addContent(new Element("requestermail").setText(requesterMail)) .addContent(new Element("requesterorg").setText(fileDownload.getRequesterOrg())) .addContent(new Element("requestercomments").setText(fileDownload.getRequesterComments())) .addContent(new Element("username").setText(username)) .addContent(new Element("surname").setText(surname)) .addContent(new Element("name").setText(name)).addContent(new Element("email").setText(email)) .addContent(new Element("profile").setText(profile)) .addContent(new Element("expiry_datetime").setText(metadataFileUpload.getDeletedDate())); response.addContent(metadataEl); } return response; }
From source file:org.georchestra.console.ws.backoffice.log.LogController.java
/** * Returns array of logs using json syntax. * <pre>/*ww w .j a va 2s.c o m*/ * {"logs": [ * { * "admin": "testadmin", * "date": "2016-03-22T15:26:21.087+0100", * "target": "testeditor", * "type": "Email sent" * }, * { * "admin": "testadmin", * "date": "2016-03-21T17:50:09.258+0100", * "target": "joe", * "type": "Email sent" * }, * { * "admin": "testadmin", * "date": "2016-03-21T17:50:09.258+0100", * "target": "marie", * "type": "Email sent" * } * ]} * </pre> * */ @RequestMapping(value = REQUEST_MAPPING + "/{target}/{limit}/{page}", method = RequestMethod.GET, produces = "application/json; charset=utf-8") @ResponseBody public List<AdminLogEntry> find(@PathVariable String target, @PathVariable int limit, @PathVariable int page) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); // Filter logs by orgs users if user is not SUPERUSER if (!auth.getAuthorities().contains(ROLE_SUPERUSER)) { List<String> users = new ArrayList<String>(); DelegationEntry delegation = this.delegationDao.findOne(auth.getName()); String[] orgs = delegation.getOrgs(); for (String org : orgs) users.addAll(this.orgsDao.findByCommonName(org).getMembers()); if (!users.contains(target)) throw new AccessDeniedException("User not under delegation"); } return this.logDao.findByTarget(target, new PageRequest(page, limit, new Sort(Sort.Direction.DESC, "date"))); }
From source file:org.georchestra.console.ws.backoffice.log.LogController.java
@RequestMapping(value = REQUEST_MAPPING + "/{limit}/{page}", method = RequestMethod.GET, produces = "application/json; charset=utf-8") @ResponseBody/*ww w . j a va 2 s .c o m*/ public List<AdminLogEntry> find(HttpServletRequest request, @PathVariable int limit, @PathVariable int page) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); // Filter logs by orgs users if user is not SUPERUSER if (!auth.getAuthorities().contains(ROLE_SUPERUSER)) { Set<String> users = this.advancedDelegationDao.findUsersUnderDelegation(auth.getName()); return this.logDao.myFindByTargets(users, new PageRequest(page, limit, new Sort(Sort.Direction.DESC, "date"))); } else { return this.logDao.findAll(new PageRequest(page, limit, new Sort(Sort.Direction.DESC, "date"))) .getContent(); } }
From source file:org.jbb.security.impl.lockout.DefaultMemberLockoutService.java
@Override @Transactional(readOnly = true)/*from w ww.j av a 2 s . c o m*/ public Page<MemberLock> getLocksWithCriteria(LockSearchCriteria criteria) { Validate.notNull(criteria); PageRequest pageRequest = PageRequest.of(criteria.getPageRequest().getPageNumber(), criteria.getPageRequest().getPageSize(), new Sort(Direction.DESC, "createDateTime")); return lockRepository.findAll(specificationCreator.createSpecification(criteria), pageRequest) .map(memberLockDomainTranslator::toModel); }
From source file:org.opentestsystem.delivery.testreg.persistence.AssessmentRepositoryImpl.java
@Override public Assessment findMaxOpportunities() { Query query = new Query(); query.with(new Sort(Direction.DESC, "numGlobalOpportunities")).limit(1); return mongoOperations.findOne(query, Assessment.class); }
From source file:org.opentestsystem.delivery.testreg.service.impl.UserChangeEventExportServiceImpl.java
@Override @Scheduled(initialDelayString = "${testreg.user.export.frequency.milliseconds:120000}", fixedDelayString = "${testreg.user.export.frequency.milliseconds:120000}") public void exportUserChangeEvents() { int userChangeEventsAddedToXML = 0; List<UserChangeEvent> userChangeEvents = userChangeEventService .findAll(new Sort(Sort.Direction.ASC, "timestamp")); if (userChangeEvents.size() > 0) { userChangeEventService.delete(userChangeEvents); long changeEventsUpToTimestamp = userChangeEvents.get(userChangeEvents.size() - 1).getTimestamp(); String exportFileName = "accounts_" + changeEventsUpToTimestamp + "_" + UUID.randomUUID().toString() + fileNameSuffix + ".xml"; try {//from www. java2s .c o m LOGGER.debug("exporting " + userChangeEvents.size() + " user change events"); StringBuilder userChangeEventsAsXML = new StringBuilder(); userChangeEventsAsXML.append("<?xml version='1.0' encoding='" + UTF8 + "'?>\n"); userChangeEventsAsXML.append("<Users>\n"); for (UserChangeEvent userChangeEvent : userChangeEvents) { try { LOGGER.debug("processing user change event id: " + userChangeEvent.getId() + " (user id: " + userChangeEvent.getModifiedUserId() + ")"); userChangeEventsAsXML.append(convertToXML(userChangeEvent)).append("\n"); userChangeEventsAddedToXML++; } catch (CannotExportUserChangeEventException ex) { LOGGER.warn("Skipping user change event for user (" + userChangeEvent.getModifiedUserId() + "): Action: (" + userChangeEvent.getAction() + "): " + ex.getMessage()); } } userChangeEventsAsXML.append("</Users>"); if (userChangeEventsAddedToXML > 0) { LOGGER.debug("\n\n" + userChangeEventsAsXML.toString() + "\n"); fileTransferService.writeFile(exportFileName, userChangeEventsAsXML.toString()); alertBeacon.sendAlert(MnaSeverity.INFO, MnaAlertType.SSO_USER_EXPORT.name(), "user change event export successful"); } } catch (Exception ex) { userChangeEventService.saveUserChangeEvents(userChangeEvents); String errorMessage = "problem processing user change events to export!"; LOGGER.error(errorMessage, ex); alertBeacon.sendAlert(MnaSeverity.ERROR, MnaAlertType.SSO_USER_EXPORT.name(), errorMessage + ": " + ex.getMessage()); } } }
From source file:org.springframework.data.neo4j.aspects.support.GraphRepositoryTest.java
@Test @Transactional//from w w w . j av a 2 s .c om public void testFindSortedDescending() { final Sort sort = new Sort(Sort.Direction.DESC, "member.name"); Iterable<Person> teamMembers = personRepository.findAllTeamMembersSorted(testTeam.sdg, sort); assertEquals(asList(testTeam.michael, testTeam.emil, testTeam.david), asCollection(teamMembers)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
@Test public void testWithSortDescOnSingleField() { SimpleStringCriteria criteria = new SimpleStringCriteria("field_1:value_1"); Query query = new SimpleQuery(criteria); query.addSort(new Sort(Sort.Direction.DESC, "field_2")); SolrQuery solrQuery = queryParser.constructSolrQuery(query); Assert.assertEquals("field_2 desc", solrQuery.getSortField()); Assert.assertEquals(1, solrQuery.getSorts().size()); }