diff options
Diffstat (limited to 'ufund-api/src')
| -rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java | 67 | ||||
| -rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/model/Cupboard.java | 4 | 
2 files changed, 59 insertions, 12 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 9c9e67a..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,23 +11,48 @@ import org.springframework.http.ResponseEntity;  import org.springframework.web.bind.annotation.*;  import java.io.IOException; -import java.util.ArrayList;  @RestController  @RequestMapping("cupboard")  public class CupboardController {      private static final Logger LOG = Logger.getLogger(CupboardController.class.getName()); -    private ArrayList<Need> needs;      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"); + +        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); +        }      }       /** @@ -59,14 +84,36 @@ public class CupboardController {          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 {  | 
