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;
|
package ru.spcex.clearing.backendapi.config;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.support.ResourceBundleMessageSource;
|
import org.springframework.context.support.ResourceBundleMessageSource;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
import ru.spcex.platform.utils.enumeration.SpringPropertiesMessageResolver;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
|
@ -17,4 +20,9 @@ public class MessagesConfig {
|
||||||
source.setDefaultLocale(Locale.ROOT);
|
source.setDefaultLocale(Locale.ROOT);
|
||||||
return source;
|
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>
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-context</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</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.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;
|
import java.util.Locale;
|
||||||
|
|
||||||
@Service("errorResolver")
|
/**
|
||||||
public class ErrorResolver implements IMessageResolver {
|
* Если в зависимостях не будет spring-context, кинет NoClassDefFound
|
||||||
|
*/
|
||||||
|
public class SpringPropertiesMessageResolver implements IMessageResolver {
|
||||||
private final ResourceBundleMessageSource errorMessages;
|
private final ResourceBundleMessageSource errorMessages;
|
||||||
|
private Locale locale;
|
||||||
|
|
||||||
public ErrorResolver(ResourceBundleMessageSource errorMessages) {
|
public SpringPropertiesMessageResolver(ResourceBundleMessageSource errorMessages) {
|
||||||
this.errorMessages = 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
|
@Override
|
||||||
public String resolve(EnumMessage errorMessage) {
|
public String resolve(EnumMessage errorMessage) {
|
||||||
Long id = errorMessage.getSubject().getId();
|
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)
|
if (errorMessage.getArgs().length > 0)
|
||||||
return String.format(messageTemplate, errorMessage.getArgs());
|
return String.format(messageTemplate, errorMessage.getArgs());
|
||||||
else {
|
else {
|
||||||
Loading…
Add table
Reference in a new issue