diff options
Diffstat (limited to 'ufund-api/src')
-rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java | 102 | ||||
-rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/model/Cupboard.java | 4 |
2 files changed, 75 insertions, 31 deletions
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java index c7fc9ac..3b99117 100644 --- a/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java +++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java @@ -11,7 +11,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.io.IOException; -import java.util.ArrayList; @RestController @RequestMapping("cupboard") @@ -19,57 +18,102 @@ public class CupboardController { private static final Logger LOG = Logger.getLogger(CupboardController.class.getName()); private Cupboard cupboard; + /** + * Creates a Need with the provided object + * + * @param need The need to create + * @return OK response and the need if it was successful, INTERNAL_SERVER_ERROR otherwise + */ @PostMapping("") - public void createNeed(@RequestBody Need need) { - cupboard.createNeed(need); + public ResponseEntity<Need> createNeed(@RequestBody Need need) { + try { + cupboard.createNeed(need); + return new ResponseEntity<>(need, HttpStatus.OK); + } catch (IOException ex) { + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } } + /** + * Responds to the GET request for all {@linkplain Need needs} + * + * @return ResponseEntity with array of {@link Need needs} objects (may be empty) + * and + * HTTP status of OK<br> + * ResponseEntity with HTTP status of INTERNAL_SERVER_ERROR otherwise + */ @GetMapping("") - public Need[] getNeeds() { - return cupboard.getNeeds(); - } + public ResponseEntity<Need[]> getNeeds() { + LOG.info("GET /needs"); - @GetMapping("/") - public Need searchNeeds(@RequestParam String name) { - return cupboard.findNeeds(name); + try { + Need[] needs = cupboard.getNeeds(); + return new ResponseEntity<>(needs, HttpStatus.OK); + } catch (IOException e) { + LOG.log(Level.SEVERE, e.getLocalizedMessage()); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } } - /** - * Responds to the GET request for a {@linkplain Need need} for the given id + /** + * Responds to the GET request for all {@linkplain Need need} whose name contains + * the text in name * - * @param id The id used to locate the {@link Need need} + * @param name The name parameter which contains the text used to find the {@link Need need} * - * @return ResponseEntity with {@link Need need} object and HTTP status of OK if found<br> - * ResponseEntity with HTTP status of NOT_FOUND if not found<br> + * @return ResponseEntity with array of {@link Need need} objects (may be empty) and + * HTTP status of OK<br> * ResponseEntity with HTTP status of INTERNAL_SERVER_ERROR otherwise + * <p> */ - @GetMapping("/{id}") - public ResponseEntity<Need> getNeed(@PathVariable int id) { - LOG.log(Level.INFO, "GET /need/{0}", id); + @GetMapping("/") + public ResponseEntity<Need[]> searchNeeds(@RequestParam String name) { + LOG.info("GET /need/?name="+name); try { - Need need = cupboard.getNeed(id); - if (need != null) { - return new ResponseEntity<>(need, HttpStatus.OK); - } else { - return new ResponseEntity<>(HttpStatus.NOT_FOUND); - } - + Need[] needArray = cupboard.findNeeds(name); + return new ResponseEntity<Need[]>(needArray,HttpStatus.OK); } catch (IOException e) { - LOG.log(Level.SEVERE, e.getLocalizedMessage()); + LOG.log(Level.SEVERE,e.getLocalizedMessage()); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } + } + @GetMapping("/{id}") + public Need getNeed(@PathVariable int id) { + return cupboard.getNeed(id); } + + /** + * Updates a Need with the provided one + * + * @param need The need to update + * @return OK response and the need if it was successful, or INTERNAL_SERVER_ERROR if there was an issue + */ + @PutMapping("") - public void updateNeed(@RequestBody Need need) { - cupboard.updateNeed(need); + public ResponseEntity<Need> updateNeed(@RequestBody Need need) { + try { + need = cupboard.updateNeed(need); + return new ResponseEntity<>(need, HttpStatus.OK); + } catch (IOException e) { + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } } @DeleteMapping("/{id}") - public void deleteNeed(@PathVariable int id) { - cupboard.removeNeed(id); + public ResponseEntity<Need> deleteNeed(@PathVariable int id) { + try { + if (cupboard.getNeed(id) != null) { + cupboard.removeNeed(id); + return new ResponseEntity<>(HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } catch (IOException e) { + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } } } diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Cupboard.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Cupboard.java index a626561..0ce015c 100644 --- a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Cupboard.java +++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Cupboard.java @@ -23,8 +23,8 @@ public class Cupboard { return dao.findNeeds(name); } - public void updateNeed(Need need) throws IOException { - dao.updateNeed(need); + public Need updateNeed(Need need) throws IOException { + return dao.updateNeed(need); } public void removeNeed(int id) throws IOException { |