diff --git a/src/main/java/ru/nbch/credit_tracker/component/comparator/ReportListPackageStatusComparator.java b/src/main/java/ru/nbch/credit_tracker/component/comparator/ReportListPackageStatusComparator.java index 7ee9e92..cb88f9a 100644 --- a/src/main/java/ru/nbch/credit_tracker/component/comparator/ReportListPackageStatusComparator.java +++ b/src/main/java/ru/nbch/credit_tracker/component/comparator/ReportListPackageStatusComparator.java @@ -1,16 +1,25 @@ package ru.nbch.credit_tracker.component.comparator; import java.util.Comparator; +import java.util.EnumSet; import java.util.function.ToIntFunction; import ru.nbch.credit_tracker.entities.app.UserPackage; import ru.nbch.credit_tracker.enums.Status; public class ReportListPackageStatusComparator { + public static final EnumSet reportedStatuses = EnumSet.of( + Status.ON_MONITORING, Status.PROCESSING_REPEATED + ); + public static Comparator INSTANCE = Comparator .comparingInt((ToIntFunction) userPackage -> statusToInt(userPackage.getStatus())) .thenComparingLong(UserPackage::getId); + /** + * статусы не входящие в {@code reportedStatuses} + * кинут ошибку в ru.nbch.credit_tracker.facade.SignalFacadeV3#getReportList + */ public static int statusToInt(String str) { try { Status status = Status.valueOf(str); diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java index ca1cffa..60ffb8c 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java @@ -290,7 +290,7 @@ public class SignalFacadeV3 { if (status.equals(Status.DELETED)) { throw clientExcp(SignalError.ERROR_022, XmlErrorFormat.MonitoringReportListError, packageName); } - if (!status.equals(Status.ON_MONITORING)) { + if (!ReportListPackageStatusComparator.reportedStatuses.contains(status)) { throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName); }