@RequestMapping( value = "/message/{id:\\d+}", method = PUT, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Message> update( @PathVariable("id") String id, @RequestBody Map<String, Object> params) { Message message = repository.findOne(id); message.update(params); repository.save(message); return ResponseEntity.ok(message); }
@RequestMapping( value = "/message/{projectId:\\d+}/{page:\\d+}/{size:\\d+}", method = GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<List<Message>> fetch( @PathVariable("projectId") String projectId, @PathVariable("page") int page, @PathVariable("size") int size) { Pageable pageable = new PageRequest(page, size); List<Message> messages = Lists.newArrayList(repository.findAll(pageable).iterator()); messages = Lists.newArrayList( messages .stream() .sorted( new Comparator<Message>() { @Override public int compare(Message m1, Message m2) { // TODO Auto-generated method stub return m1.getDateTime() - m2.getDateTime() > 0 ? -1 : 1; } }) .iterator()); return ResponseEntity.ok(messages); }
@RequestMapping( value = "/message/{publisher:\\w+}/{projectId:\\d+}/{page:\\d+}/{size:\\d+}", method = GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<List<Message>> fetchByPublisher( @PathVariable("publisher") String publisher, @PathVariable("projectId") String projectId, @PathVariable("page") int page, @PathVariable("size") int size) { Pageable pageable = new PageRequest(page, size); List<Message> messages = Lists.newArrayList(repository.fetchByPublisher(projectId, publisher, pageable).iterator()); return ResponseEntity.ok(messages); }