/** * Endpoint for getting all feedback within the system for a given name * * @param name the name to get all feedback for * * @return a list of all feedback for given name */ @RequestMapping(params = "name", method = RequestMethod.GET) public ResponseEntity<List<NameEntryFeedback>> getFeedbacksForName(@RequestParam("name") String name) { final Sort sort = new Sort(Sort.Direction.DESC, "submittedAt"); return new ResponseEntity<>(feedbackRepository.findByName(name, sort), HttpStatus.OK); }
/** * Returns all the feedback for a name, sorted by time submitted * * @return the feedback as a list of {@link NameEntryFeedback} */ public List<NameEntryFeedback> getFeedback(NameEntry entry) { final Sort sort = new Sort(Sort.Direction.DESC, "submittedAt"); return nameEntryFeedbackRepository.findByName(entry.getName(), sort); }
/** * Endpoint for deleting all feedback for a name * * @return {@link org.springframework.http.ResponseEntity} with string containing outcome of action */ @RequestMapping(params = "name", method = RequestMethod.DELETE, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Map<String, String>> deleteAllFeedbackForName(@RequestParam("name") String name) { if (entryService.loadName(name) == null) { throw new GenericApiCallException(name + " does not exist. Cannot delete all feedback"); } final Sort sort = new Sort(Sort.Direction.DESC, "submittedAt"); List<NameEntryFeedback> feedbacks = feedbackRepository.findByName(name, sort); feedbacks.stream().forEach(feedback -> feedbackRepository.delete(feedback)); return new ResponseEntity<>(response("All Feedback messages deleted for "+ name), HttpStatus.OK); }