[AB-135] adding a template to describe the parameter validators for help texts, fixing assignable roles not available as module

This commit is contained in:
Sheldan
2020-10-12 11:52:28 +02:00
parent 36d11371cb
commit bc9afc9bfc
7 changed files with 49 additions and 7 deletions

View File

@@ -2,7 +2,9 @@ package dev.sheldan.abstracto.assignableroles.command;
import dev.sheldan.abstracto.core.command.config.ModuleInfo; import dev.sheldan.abstracto.core.command.config.ModuleInfo;
import dev.sheldan.abstracto.core.command.config.ModuleInterface; import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import org.springframework.stereotype.Component;
@Component
public class AssignableRoleModule implements ModuleInterface { public class AssignableRoleModule implements ModuleInterface {
public static final String ASSIGNABLE_ROLES = "assignableRoles"; public static final String ASSIGNABLE_ROLES = "assignableRoles";

View File

@@ -181,7 +181,7 @@ public class CommandReceivedHandler extends ListenerAdapter {
boolean validate = parameterValidator.validate(parameters.getParameters().get(i)); boolean validate = parameterValidator.validate(parameters.getParameters().get(i));
if(!validate) { if(!validate) {
log.trace("Parameter {} in command {} failed to validate.", parameter.getName(), foundCommand.getConfiguration().getName()); log.trace("Parameter {} in command {} failed to validate.", parameter.getName(), foundCommand.getConfiguration().getName());
throw new CommandParameterValidationException(parameterValidator.getParameters(), parameterValidator.getTemplateName(), parameter); throw new CommandParameterValidationException(parameterValidator.getParameters(), parameterValidator.getExceptionTemplateName(), parameter);
} }
} }
} }

View File

@@ -1,11 +1,12 @@
package dev.sheldan.abstracto.core.command.config; package dev.sheldan.abstracto.core.command.config;
import dev.sheldan.abstracto.core.command.config.validator.ValidatorParam; import dev.sheldan.abstracto.core.command.config.validator.ValidatorParam;
import dev.sheldan.abstracto.templating.Templatable;
import java.util.List; import java.util.List;
public interface ParameterValidator { public interface ParameterValidator extends Templatable {
boolean validate(Object value); boolean validate(Object value);
List<ValidatorParam> getParameters(); List<ValidatorParam> getParameters();
String getTemplateName(); String getExceptionTemplateName();
} }

View File

@@ -39,7 +39,17 @@ public class MaxIntegerValueValidator implements ParameterValidator {
} }
@Override @Override
public String getTemplateName() { public String getExceptionTemplateName() {
return "command_parameter_validation_value_too_large"; return "command_parameter_validation_value_too_large";
} }
@Override
public String getTemplateName() {
return "max_integer_value_validation_description";
}
@Override
public Object getTemplateModel() {
return getParameters().get(0);
}
} }

View File

@@ -39,7 +39,7 @@ public class MaxStringLengthValidator implements ParameterValidator {
} }
@Override @Override
public String getTemplateName() { public String getExceptionTemplateName() {
return "command_parameter_validation_string_too_long"; return "command_parameter_validation_string_too_long";
} }
@@ -51,4 +51,13 @@ public class MaxStringLengthValidator implements ParameterValidator {
} }
@Override
public String getTemplateName() {
return "max_string_length_validation_description";
}
@Override
public Object getTemplateModel() {
return getParameters().get(0);
}
} }

View File

@@ -53,8 +53,18 @@ public class MinIntegerValueValidator implements ParameterValidator {
} }
@Override @Override
public String getTemplateName() { public String getExceptionTemplateName() {
return "command_parameter_validation_value_too_small"; return "command_parameter_validation_value_too_small";
} }
@Override
public String getTemplateName() {
return "min_integer_value_validation_description";
}
@Override
public Object getTemplateModel() {
return getParameters().get(0);
}
} }

View File

@@ -39,7 +39,17 @@ public class MinStringLengthValidator implements ParameterValidator {
} }
@Override @Override
public String getTemplateName() { public String getExceptionTemplateName() {
return "command_parameter_validation_string_too_short"; return "command_parameter_validation_string_too_short";
} }
@Override
public String getTemplateName() {
return "min_string_length_validation_description";
}
@Override
public Object getTemplateModel() {
return getParameters().get(0);
}
} }