use of com.ncedu.fooddelivery.api.v1.entities.productPosition.ProductPosition in project 2021-msk-food-delivery by netcracker-edu.
the class ProductPositionController method updatePaymentStatus.
@PatchMapping("/api/v1/productPositions/paymentState")
@PreAuthorize("hasAnyAuthority('ADMIN', 'MODERATOR')")
public ResponseEntity<?> updatePaymentStatus(@AuthenticationPrincipal User user, @Valid @RequestBody UpdatePaymentStatusDTO updatePaymentStatusDTO) {
List<ProductPosition> productPositionList = new ArrayList<>();
for (Long id : updatePaymentStatusDTO.getProductPositions()) {
ProductPosition productPosition = productPositionService.getProductPosition(id);
if (productPosition == null)
throw new NotFoundEx(String.valueOf(id));
productPositionList.add(productPosition);
}
if (Role.isMODERATOR(user.getRole().toString())) {
Long moderatorBindedWarehouseId = user.getModerator().getWarehouseId();
for (ProductPosition productPosition : productPositionList) {
if (!productPosition.getWarehouse().getId().equals(moderatorBindedWarehouseId))
throw new CustomAccessDeniedException();
}
}
productPositionService.updatePaymentStatus(updatePaymentStatusDTO.getProductPositions());
return new ResponseEntity<>(HttpStatus.OK);
}
use of com.ncedu.fooddelivery.api.v1.entities.productPosition.ProductPosition 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