added message resolver to utils
This commit is contained in:
parent
f72d7ff8e2
commit
7fc4e66043
3 changed files with 33 additions and 8 deletions
|
|
@ -1,8 +1,11 @@
|
|||
package ru.spcex.clearing.backendapi.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.support.ResourceBundleMessageSource;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.enumeration.SpringPropertiesMessageResolver;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
|
@ -17,4 +20,9 @@ public class MessagesConfig {
|
|||
source.setDefaultLocale(Locale.ROOT);
|
||||
return source;
|
||||
}
|
||||
|
||||
@Bean("errorResolver")
|
||||
public IMessageResolver errorResolver(@Qualifier("validation-error-messages") ResourceBundleMessageSource messageBundle) {
|
||||
return new SpringPropertiesMessageResolver(messageBundle);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,4 +19,12 @@
|
|||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
@ -1,24 +1,33 @@
|
|||
package ru.spcex.clearing.backendapi.errors;
|
||||
package ru.spcex.platform.utils.enumeration;
|
||||
|
||||
import org.springframework.context.support.ResourceBundleMessageSource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
@Service("errorResolver")
|
||||
public class ErrorResolver implements IMessageResolver {
|
||||
/**
|
||||
* Если в зависимостях не будет spring-context, кинет NoClassDefFound
|
||||
*/
|
||||
public class SpringPropertiesMessageResolver implements IMessageResolver {
|
||||
private final ResourceBundleMessageSource errorMessages;
|
||||
private Locale locale;
|
||||
|
||||
public ErrorResolver(ResourceBundleMessageSource errorMessages) {
|
||||
public SpringPropertiesMessageResolver(ResourceBundleMessageSource errorMessages) {
|
||||
this.errorMessages = errorMessages;
|
||||
this.locale = Locale.ENGLISH;
|
||||
}
|
||||
|
||||
public void setLocale(String locale) {
|
||||
this.locale = new Locale(locale);
|
||||
}
|
||||
|
||||
public void setLocale(Locale locale) {
|
||||
this.locale = locale;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String resolve(EnumMessage errorMessage) {
|
||||
Long id = errorMessage.getSubject().getId();
|
||||
String messageTemplate = errorMessages.getMessage(id.toString(), null, Locale.ENGLISH);
|
||||
String messageTemplate = errorMessages.getMessage(id.toString(), null, locale);
|
||||
if (errorMessage.getArgs().length > 0)
|
||||
return String.format(messageTemplate, errorMessage.getArgs());
|
||||
else {
|
||||
Loading…
Add table
Reference in a new issue