use of com.ncedu.fooddelivery.api.v1.errors.security.CustomAccessDeniedException in project 2021-msk-food-delivery by netcracker-edu.
the class ProductPositionController method deleteProductPosition.
@DeleteMapping("/api/v1/productPosition/{id}")
@PreAuthorize("hasAnyAuthority('ADMIN', 'MODERATOR')")
public ResponseEntity<?> deleteProductPosition(@PathVariable Long id, @AuthenticationPrincipal User user) {
ProductPosition productPositionToDelete = productPositionService.getProductPosition(id);
if (productPositionToDelete == null)
throw new NotFoundEx(String.valueOf(id));
if (Role.isMODERATOR(user.getRole().toString())) {
if (!user.getModerator().getWarehouseId().equals(productPositionToDelete.getWarehouse().getId())) {
throw new CustomAccessDeniedException();
}
}
boolean deleteResult = productPositionService.deleteProductPosition(id);
if (deleteResult)
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
else
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Aggregations