From e24938dfce9d2f76dc0bedff0a28a0c7d019eb56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Wo=C5=BAniak?= Date: Thu, 7 Jan 2021 17:02:12 +0100 Subject: [PATCH] Checkpoint: return per ID works MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Woźniak --- .../controllers/ExchangeController.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java b/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java index dccf17e..6c9634e 100644 --- a/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java +++ b/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java @@ -122,4 +122,26 @@ public class ExchangeController extends TokenBasedController{ return new ResponseEntity<>(listOfResponses, HttpStatus.OK); } + + @GetMapping("/exchange/{id}") + @ApiOperation(value = "Get exchange offers") + public ResponseEntity getExchangeById(@PathVariable(name = "id", required = false) Long offerId) + throws UserNotFoundException { + + final User asker = this.getCurrentUser() + .orElseThrow(() -> new UserNotFoundException("Invalid token")); + + final Optional exchange = this.exchangeService.getById(offerId); + + if(exchange.isEmpty()){ + return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); + } + + final Exchange exchangeInstance = exchange.get(); + if(!exchangeInstance.getOwnerId().equals(asker.getId())){ + return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); + } + + return new ResponseEntity<>(new ExchangeResponse(exchangeInstance), HttpStatus.OK); + } }