diff --git a/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java b/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java index 0b096f7..fcc0574 100644 --- a/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java +++ b/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java @@ -2,7 +2,7 @@ package ru.nbch.credit_tracker.enums; public enum SignalError implements IEnumKeyCode { ERROR_001("001", "Ошибка распаковки архива"), - ERROR_002("002", "Отсутствует обязательный элемент: "), + ERROR_002("002", "Отсутствует обязательный элемент: {}"), ERROR_003("003", "Элемент ClientId не соответствует формату XXXXXXXXX"), ERROR_005("005", "Неверный логин или пароль"), ERROR_006("006", "Доступ к услуге закрыт, обратитесь к курирующему менеджеру"), @@ -11,13 +11,18 @@ public enum SignalError implements IEnumKeyCode { ERROR_009("009", "Превышен допустимый размер пакета"), ERROR_010("010", "Идентификатор субъекта (Id) не соответствует допустимому формату"), ERROR_011("011", "Получен невалидный XML"), - ERROR_012("012", "Пакет не найден"), + ERROR_012("012", "Пакет {} не найден"), ERROR_013("013", "На стороне сервиса произошла ошибка, попробуйте повторить запрос позже или сообщите в техническую поддержку"), ERROR_014("014", "Файл не найден"), ERROR_015("015", "У данного пользователя не найдено активных пакетов"), - ERROR_016("016", "Нет активного пакета с именем "), + ERROR_016("016", "Нет активного пакета с именем {}"), ERROR_017("017", "При обработке запроса произошла ошибка. Повторите запрос позже или обратитесь в службу технической поддержки"), // TODO get rid of duplicate? - ERROR_019("019", "У данного пользователя не найдено ни одного пакета"); + ERROR_018("018", "Пакет {} находится в обработке. Дождитесь его установки на мониторинг и повторите попытку позже."), + ERROR_019("019", "У данного пользователя не найдено ни одного пакета"), + ERROR_020("020", "Пакет {} был отклонён при установке на мониторинг. Отчеты не формируются."), + ERROR_021("021", "Обработка пакета {} завершилась с ошибкой, отчёты недоступны. Обратитесь в техническую поддержку."), + ERROR_022("022", "Пакет {} снят с мониторинга, отчёты больше недоступны."); + private final String code; private final String message; diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java index f08f7e3..eb56859 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java @@ -347,7 +347,19 @@ public class SignalFacade { public ResponseEntity getReportList(String username, String packageName) { try { - if (!signalService.hasActivePackages(username, packageName)) { + if (signalService.isPackagesByStatusExist(username, packageName, Status.PROCESSING)) { + throw clientExcp(SignalError.ERROR_018, XmlErrorFormat.MonitoringReportListError, packageName); + } + if (signalService.isPackagesByStatusExist(username, packageName, Status.REJECTED)) { + throw clientExcp(SignalError.ERROR_020, XmlErrorFormat.MonitoringReportListError, packageName); + } + if (signalService.isPackagesByStatusExist(username, packageName, Status.ERROR)) { + throw clientExcp(SignalError.ERROR_021, XmlErrorFormat.MonitoringReportListError, packageName); + } + if (signalService.isPackagesByStatusExist(username, packageName, Status.DELETED)) { + throw clientExcp(SignalError.ERROR_022, XmlErrorFormat.MonitoringReportListError, packageName); + } + if (!signalService.isPackagesByStatusExist(username, packageName, Status.ON_MONITORING)) { throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java index 6e86803..4d1d649 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java @@ -317,8 +317,8 @@ public class SignalService { return userPackageService.isPackageExists(username, packageName, Status.ON_MONITORING); } - public boolean hasActivePackages(String username, String packageName) { - return userPackageService.hasActivePackages(username, packageName, Status.ON_MONITORING, Status.PROCESSING); + public boolean isPackagesByStatusExist(String username, String packageName, Status status) { + return userPackageService.hasActivePackages(username, packageName, status); } public void deletePackage(String username, String packageName, LocalDateTime deactivatedAt) { diff --git a/src/main/java/ru/nbch/credit_tracker/utils/error/SimpleMessageResolver.java b/src/main/java/ru/nbch/credit_tracker/utils/error/SimpleMessageResolver.java index 6384b58..53924e8 100644 --- a/src/main/java/ru/nbch/credit_tracker/utils/error/SimpleMessageResolver.java +++ b/src/main/java/ru/nbch/credit_tracker/utils/error/SimpleMessageResolver.java @@ -11,7 +11,7 @@ public class SimpleMessageResolver { if(errorMessage.getArgs().length == 0) { return errorMessage.getSubject().getKey(); } else { - return String.format("%s %s", errorMessage.getSubject().getKey(), Arrays.toString(errorMessage.getArgs())); + return errorMessage.getSubject().getKey().replace("{}", Arrays.toString(errorMessage.getArgs())); } } }