Skip to content

Commit

Permalink
changed ordering of validators
Browse files Browse the repository at this point in the history
  • Loading branch information
yashita-egov committed Nov 29, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent a1477b5 commit d8e04b4
Showing 6 changed files with 32 additions and 30 deletions.
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@

@Component
@Slf4j
@Order(2)
@Order(3)
public class SNonExistentValidator implements Validator<StockBulkRequest, Stock> {

private final StockRepository stockRepository;
@@ -36,12 +36,13 @@ public SNonExistentValidator(StockRepository stockRepository) {
@Override
public Map<Stock, List<Error>> validate(StockBulkRequest request) {
Map<Stock, List<Error>> errorDetailsMap = new HashMap<>();
List<Stock> entities = request.getStock().stream().filter(notHavingErrors()).collect(Collectors.toList());
List<Stock> entities = request.getStock();

log.info("validating non existent stock");
Class<?> objClass = getObjClass(entities);
Method idMethod = getMethod(GET_ID, objClass);
Map<String, Stock> eMap = getIdToObjMap(entities, idMethod);
Map<String, Stock> eMap = getIdToObjMap(entities
.stream().filter(notHavingErrors()).collect(Collectors.toList()), idMethod);
// Lists to store IDs and client reference IDs
List<String> idList = new ArrayList<>();
List<String> clientReferenceIdList = new ArrayList<>();
@@ -77,4 +78,4 @@ public Map<Stock, List<Error>> validate(StockBulkRequest request) {
log.info("stock non existent validation completed successfully, total errors: "+errorDetailsMap.size());
return errorDetailsMap;
}
}
}
Original file line number Diff line number Diff line change
@@ -8,7 +8,6 @@
import org.egov.stock.repository.StockRepository;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import java.lang.reflect.Method;
import java.util.ArrayList;
@@ -41,11 +40,9 @@ public Map<Stock, List<Error>> validate(StockBulkRequest request) {
Map<Stock, List<Error>> errorDetailsMap = new HashMap<>();
log.info("validating row version stock");
Method idMethod = getIdMethod(request.getStock());
Map<String, Stock> eMap = getIdToObjMap(request.getStock()
.stream()
.filter(entity -> StringUtils.hasText(entity.getId()))
.collect(Collectors.toList()), idMethod);

Map<String, Stock> eMap = getIdToObjMap(request.getStock().stream()
.filter(notHavingErrors())
.collect(Collectors.toList()), idMethod);
if (!eMap.isEmpty()) {
List<String> entityIds = new ArrayList<>(eMap.keySet());
List<Stock> existingEntities = stockRepository.findById(entityIds, false,
@@ -61,4 +58,4 @@ public Map<Stock, List<Error>> validate(StockBulkRequest request) {
log.info("stock row version validation completed successfully, total errors: "+errorDetailsMap.size());
return errorDetailsMap;
}
}
}
Original file line number Diff line number Diff line change
@@ -20,20 +20,21 @@

@Component
@Slf4j
@Order(3)
@Order(2)
public class SUniqueEntityValidator implements Validator<StockBulkRequest, Stock> {
@Override
public Map<Stock, List<Error>> validate(StockBulkRequest request) {
Map<Stock, List<Error>> errorDetailsMap = new HashMap<>();
log.info("validating unique entity for stock");
List<Stock> validEntities = request.getStock();

List<Stock> validEntities = request.getStock()
.stream().filter(notHavingErrors()).collect(Collectors.toList());
if (!validEntities.isEmpty()) {
log.info("valid entity not empty");
Map<String, Stock> eMap = getIdToObjMap(validEntities);
if (eMap.keySet().size() != validEntities.size()) {
List<String> duplicates = eMap.keySet().stream().filter(id -> id != null && validEntities.stream()
.filter(entity -> entity.getId().equals(id)).count() > 1
List<String> duplicates = eMap.keySet().stream().filter(id ->
validEntities.stream()
.filter(entity -> entity.getId().equals(id)).count() > 1
).collect(Collectors.toList());
for (String key : duplicates) {
Error error = getErrorForUniqueEntity();
@@ -44,4 +45,4 @@ public Map<Stock, List<Error>> validate(StockBulkRequest request) {
log.info("stock unique entity validation completed successfully, total errors: "+errorDetailsMap.size());
return errorDetailsMap;
}
}
}
Original file line number Diff line number Diff line change
@@ -26,11 +26,10 @@
import static org.egov.common.utils.CommonUtils.populateErrorDetails;
import static org.egov.common.utils.ValidatorUtils.getErrorForNonExistentEntity;
import static org.egov.stock.Constants.GET_ID;
import static org.egov.stock.Constants.SR_VALIDATOR_STOCK_SEARCH_FAILED;

@Component
@Slf4j
@Order(2)
@Order(3)
public class SrNonExistentValidator implements Validator<StockReconciliationBulkRequest, StockReconciliation> {

private final StockReconciliationRepository stockReconciliationRepository;
@@ -46,14 +45,15 @@ public Map<StockReconciliation, List<Error>> validate(StockReconciliationBulkReq
List<StockReconciliation> entities = request.getStockReconciliation();
Class<?> objClass = getObjClass(entities);
Method idMethod = getMethod(GET_ID, objClass);
Map<String, StockReconciliation> eMap = getIdToObjMap(entities, idMethod);
Map<String, StockReconciliation> eMap = getIdToObjMap(entities
.stream().filter(notHavingErrors()).collect(Collectors.toList()), idMethod);
// Lists to store IDs and client reference IDs
List<String> idList = new ArrayList<>();
List<String> clientReferenceIdList = new ArrayList<>();
// Extract IDs and client reference IDs from StockReconciliation entities
entities.forEach(entity -> {
if(entity.getId()!=null) idList.add(entity.getId());
if(entity.getClientReferenceId()!=null) clientReferenceIdList.add(entity.getClientReferenceId());
idList.add(entity.getId());
clientReferenceIdList.add(entity.getClientReferenceId());
});
if (!eMap.isEmpty()) {
StockReconciliationSearch stockReconciliationSearch = StockReconciliationSearch.builder()
@@ -69,7 +69,7 @@ public Map<StockReconciliation, List<Error>> validate(StockReconciliationBulkReq
} catch (Exception e) {
// Handle query builder exception
log.error("Search failed for StockReconciliation with error: {}", e.getMessage(), e);
throw new CustomException(SR_VALIDATOR_STOCK_SEARCH_FAILED, "Search Failed for StockReconciliation, " + e.getMessage());
throw new CustomException("STOCK_RECONCILIANTION_SEARCH_FAILED", "Search Failed for StockReconciliation, " + e.getMessage());
}
List<StockReconciliation> nonExistentEntities = checkNonExistentEntities(eMap,
existingEntities, idMethod);
@@ -82,4 +82,4 @@ public Map<StockReconciliation, List<Error>> validate(StockReconciliationBulkReq
log.info("stock reconciliation non existent validation completed successfully, total errors: "+errorDetailsMap.size());
return errorDetailsMap;
}
}
}
Original file line number Diff line number Diff line change
@@ -40,7 +40,9 @@ public Map<StockReconciliation, List<Error>> validate(StockReconciliationBulkReq
Map<StockReconciliation, List<Error>> errorDetailsMap = new HashMap<>();
log.info("validating row version stock reconciliation");
Method idMethod = getIdMethod(request.getStockReconciliation());
Map<String, StockReconciliation> eMap = getIdToObjMap(request.getStockReconciliation(), idMethod);
Map<String, StockReconciliation> eMap = getIdToObjMap(request.getStockReconciliation().stream()
.filter(notHavingErrors())
.collect(Collectors.toList()), idMethod);
if (!eMap.isEmpty()) {
List<String> entityIds = new ArrayList<>(eMap.keySet());
List<StockReconciliation> existingEntities = stockReconciliationRepository.findById(entityIds, false,
@@ -56,4 +58,4 @@ public Map<StockReconciliation, List<Error>> validate(StockReconciliationBulkReq
log.info("stock reconciliation row version validation completed successfully, total errors: "+ errorDetailsMap.size());
return errorDetailsMap;
}
}
}
Original file line number Diff line number Diff line change
@@ -20,18 +20,19 @@

@Component
@Slf4j
@Order(3)
@Order(2)
public class SrUniqueEntityValidator implements Validator<StockReconciliationBulkRequest, StockReconciliation> {
@Override

public Map<StockReconciliation, List<Error>> validate(StockReconciliationBulkRequest request) {
Map<StockReconciliation, List<Error>> errorDetailsMap = new HashMap<>();
log.info("validating unique entity for stock reconciliation");
List<StockReconciliation> validEntities = request.getStockReconciliation();
List<StockReconciliation> validEntities = request.getStockReconciliation()
.stream().filter(notHavingErrors()).collect(Collectors.toList());
if (!validEntities.isEmpty()) {
Map<String, StockReconciliation> eMap = getIdToObjMap(validEntities);
if (eMap.keySet().size() != validEntities.size()) {
List<String> duplicates = eMap.keySet().stream().filter(id -> id!=null &&
List<String> duplicates = eMap.keySet().stream().filter(id ->
validEntities.stream()
.filter(entity -> entity.getId().equals(id)).count() > 1
).collect(Collectors.toList());
@@ -45,4 +46,4 @@ public Map<StockReconciliation, List<Error>> validate(StockReconciliationBulkReq
log.info("stock reconciliation unique entity validation completed successfully, total errors: "+errorDetailsMap.size());
return errorDetailsMap;
}
}
}

0 comments on commit d8e04b4

Please sign in to comment.