use of com.ncedu.fooddelivery.api.v1.entities.Moderator in project 2021-msk-food-delivery by netcracker-edu.
the class ModeratorServiceTest method getModeratorByIdSuccess.
@Test
public void getModeratorByIdSuccess() {
Long userId = 1L;
User user = new User();
user.setId(userId);
user.setFullName("Howard Joel Wolowitz");
user.setRole(Role.MODERATOR);
Moderator moderator = new Moderator();
moderator.setUser(user);
moderator.setWarehouseId(1L);
when(moderatorRepoMock.findById(userId)).thenReturn(Optional.of(moderator));
Moderator result = moderatorService.getModeratorById(userId);
verify(moderatorRepoMock, times(1)).findById(userId);
assertEquals(moderator, result);
}
use of com.ncedu.fooddelivery.api.v1.entities.Moderator in project 2021-msk-food-delivery by netcracker-edu.
the class ModeratorServiceTest method getModeratorDTObyIDSuccess.
@Test
public void getModeratorDTObyIDSuccess() {
Long userId = 1L;
User user = new User();
user.setId(userId);
user.setFullName("Howard Joel Wolowitz");
user.setRole(Role.MODERATOR);
Moderator moderator = new Moderator();
moderator.setUser(user);
moderator.setWarehouseId(1L);
when(moderatorRepoMock.findById(userId)).thenReturn(Optional.of(moderator));
ModeratorInfoDTO resultModeratorDTO = moderatorService.getModeratorDTOById(userId);
ModeratorInfoDTO perfectModeratorDTO = createModeratorDTO(moderator);
verify(moderatorRepoMock, times(1)).findById(userId);
assertEquals(perfectModeratorDTO, resultModeratorDTO);
}
use of com.ncedu.fooddelivery.api.v1.entities.Moderator in project 2021-msk-food-delivery by netcracker-edu.
the class ProductPositionController method nullifyProductPosition.
@PatchMapping("/api/v1/productPosition/{id}/currentAmount")
@PreAuthorize("hasAnyAuthority('ADMIN', 'MODERATOR')")
public ResponseEntity<?> nullifyProductPosition(@Min(value = 1) @Max(value = Long.MAX_VALUE) @PathVariable Long id, @AuthenticationPrincipal User user) {
ProductPosition productPositionToNullify = productPositionService.getProductPosition(id);
if (productPositionToNullify == null)
throw new NotFoundEx(String.valueOf(id));
if (Role.isMODERATOR(user.getRole().toString())) {
if (!user.getModerator().getWarehouseId().equals(productPositionToNullify.getWarehouse().getId())) {
throw new CustomAccessDeniedException();
}
}
productPositionService.nullifyProductPosition(id);
return new ResponseEntity<>(HttpStatus.OK);
}
use of com.ncedu.fooddelivery.api.v1.entities.Moderator 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.Moderator 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