diff --git a/backend/src/main/java/ru/micord/ervu_eks/exception/ConfigExecutorException.java b/backend/src/main/java/ru/micord/ervu_eks/exception/ConfigExecutorException.java index 3c060cc..d180faa 100644 --- a/backend/src/main/java/ru/micord/ervu_eks/exception/ConfigExecutorException.java +++ b/backend/src/main/java/ru/micord/ervu_eks/exception/ConfigExecutorException.java @@ -1,8 +1,17 @@ package ru.micord.ervu_eks.exception; -public class ConfigExecutorException extends RuntimeException{ +import org.springframework.context.support.MessageSourceAccessor; +import ru.cg.webbpm.modules.core.runtime.api.LocalizedException; +import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils; - public ConfigExecutorException(String message) { - super(message); +public class ConfigExecutorException extends LocalizedException { + + private static final MessageSourceAccessor MESSAGE_SOURCE = MessageBundleUtils.createAccessor( + "i18n/exception_handler_messages" + ); + + public ConfigExecutorException(String code, Throwable cause) { + super(code, MESSAGE_SOURCE, cause); } + } diff --git a/backend/src/main/java/service/ConfigExecutorService.java b/backend/src/main/java/service/ConfigExecutorService.java index ed5066a..f368213 100644 --- a/backend/src/main/java/service/ConfigExecutorService.java +++ b/backend/src/main/java/service/ConfigExecutorService.java @@ -95,10 +95,7 @@ public class ConfigExecutorService { }.getType() ); - @SuppressWarnings("unchecked") - Map details = (Map) responseMap.get("details"); - String detailsStr = String.join("\n", details.values()); - throw new ConfigExecutorException(detailsStr); + throw new ConfigExecutorException((String) responseMap.get("details"), e); } else { throw new RuntimeException( diff --git a/backend/src/main/resources/i18n/exception_handler_messages.properties b/backend/src/main/resources/i18n/exception_handler_messages.properties index c987e80..7443c1a 100644 --- a/backend/src/main/resources/i18n/exception_handler_messages.properties +++ b/backend/src/main/resources/i18n/exception_handler_messages.properties @@ -1 +1,4 @@ -error.unknown=Произошла неизвестная ошибка, обратитесь в службу технической поддержки! +error.unknown=Произошла неизвестная ошибка, обратитесь в службу технической поддержки +eks.error.argument.missing=Произошла ошибка ввода данных. Проверьте заполненность полей +eks.error.argument.invalid=Произошла ошибка ввода данных. Проверьте корректность данных +eks.error.misc=Произошла неизвестная ошибка, обратитесь в службу технической поддержки \ No newline at end of file diff --git a/backend/src/main/resources/i18n/exception_handler_messages_en_US.properties b/backend/src/main/resources/i18n/exception_handler_messages_en_US.properties index 737a43d..dff4edf 100644 --- a/backend/src/main/resources/i18n/exception_handler_messages_en_US.properties +++ b/backend/src/main/resources/i18n/exception_handler_messages_en_US.properties @@ -1 +1,4 @@ -error.unknown=Unknown error, please contact technical support service. \ No newline at end of file +error.unknown=Unknown error, please contact technical support service. +eks.error.argument.missing=Validation error: some arguments are missing +eks.error.argument.invalid=Validation error: some arguments are invalid +eks.error.misc= , \ No newline at end of file diff --git a/config-data-executor/src/main/java/org/micord/service/ValidationService.java b/config-data-executor/src/main/java/org/micord/service/ValidationService.java index 57020c0..6eec057 100644 --- a/config-data-executor/src/main/java/org/micord/service/ValidationService.java +++ b/config-data-executor/src/main/java/org/micord/service/ValidationService.java @@ -114,7 +114,7 @@ public class ValidationService { } if (ids == null || ids.isEmpty()) { - throw new IllegalRequestParametersException("пустые идентификаторы не допускаются"); + throw new IllegalRequestParametersException("eks.error.argument.missing"); } Boolean isIdsFormatted = request.getRequestValidationRules().getIsIdsFormatted(); @@ -124,7 +124,7 @@ public class ValidationService { boolean invalidIdFound = ids.stream().anyMatch(id -> !id.matches(uuidRegex)); if (invalidIdFound) { - throw new IllegalRequestParametersException("Некоторые идентификаторы не соответствуют формату GUID"); + throw new IllegalRequestParametersException("eks.error.argument.invalid"); } } return Map.of(ValidationService.IS_EMPTY_IDS_ALLOWED, emptyIdsAllowed);