added validation for emotes to features

This commit is contained in:
Sheldan
2020-05-15 20:31:16 +02:00
parent b984129df6
commit 82c63d4825
38 changed files with 135 additions and 32 deletions

View File

@@ -0,0 +1,22 @@
package dev.sheldan.abstracto.core.command.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
@Component
public class CoreFeature implements FeatureConfig {
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
}
@Override
public List<String> getRequiredEmotes() {
return Arrays.asList("warnReaction", "successReaction");
}
}

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.core.command.config.features;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import lombok.Getter;
@Getter
public enum CoreFeatures implements FeatureEnum {
CORE_FEATURE("core");
private String key;
CoreFeatures(String key) {
this.key = key;
}
}

View File

@@ -16,4 +16,5 @@ public interface FeatureConfig {
default List<PostTargetEnum> getRequiredPostTargets() { return Collections.emptyList();}
default List<String> getRequiredSystemConfigKeys() { return Collections.emptyList();}
default List<FeatureValidator> getAdditionalFeatureValidators() { return Collections.emptyList(); }
default List<String> getRequiredEmotes() { return Collections.emptyList(); }
}

View File

@@ -0,0 +1,28 @@
package dev.sheldan.abstracto.core.models;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.util.HashMap;
@Getter
@Setter
@Builder
public class EmoteMissingValidationError implements ValidationError {
private String emoteKey;
@Override
public String getTemplateName() {
return "emote_not_setup";
}
@Override
public Object getTemplateModel() {
HashMap<String, String> params = new HashMap<>();
params.put("emoteKey", emoteKey);
return params;
}
}

View File

@@ -7,4 +7,5 @@ import dev.sheldan.abstracto.core.models.database.AServer;
public interface FeatureValidatorService {
void checkPostTarget(PostTargetEnum postTargetEnum, AServer server, FeatureValidationResult featureValidationResult);
boolean checkSystemConfig(String name, AServer server, FeatureValidationResult featureValidationResult);
void checkEmote(String emoteKey, AServer server, FeatureValidationResult featureValidationResult);
}