added check for existing system config when a feature is enabled

This commit is contained in:
Sheldan
2020-05-15 18:53:51 +02:00
parent f11232de05
commit b984129df6
24 changed files with 226 additions and 5 deletions

View File

@@ -18,6 +18,6 @@ public class WarnDecayConfigListener implements ServerConfigListener {
@Override
public void updateServerConfig(AServer server) {
configManagementService.createIfNotExists(server.getId(), "decayDays", decayDays.longValue());
configManagementService.createIfNotExists(server.getId(), "decayDays", decayDays);
}
}

View File

@@ -0,0 +1,20 @@
package dev.sheldan.abstracto.moderation.validator;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class WarnDecayFeatureValidatorBean implements WarnDecayFeatureValidator {
@Autowired
private FeatureValidatorService featureValidatorService;
@Override
public void featureIsSetup(FeatureConfig featureConfig, AServer server, FeatureValidationResult validationResult) {
featureValidatorService.checkSystemConfig("decayDays", server, validationResult);
}
}

View File

@@ -3,7 +3,9 @@ package dev.sheldan.abstracto.moderation.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.core.service.FeatureValidator;
import dev.sheldan.abstracto.moderation.config.posttargets.WarnDecayPostTarget;
import dev.sheldan.abstracto.moderation.validator.WarnDecayFeatureValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -16,6 +18,9 @@ public class WarningDecayFeature implements FeatureConfig {
@Autowired
private WarningFeature warningFeature;
@Autowired
private WarnDecayFeatureValidator warnDecayFeatureValidator;
@Override
public FeatureEnum getFeature() {
return ModerationFeatures.AUTOMATIC_WARN_DECAY;
@@ -30,4 +35,9 @@ public class WarningDecayFeature implements FeatureConfig {
public List<PostTargetEnum> getRequiredPostTargets() {
return Arrays.asList(WarnDecayPostTarget.DECAY_LOG);
}
@Override
public List<FeatureValidator> getAdditionalFeatureValidators() {
return Arrays.asList(warnDecayFeatureValidator);
}
}

View File

@@ -0,0 +1,6 @@
package dev.sheldan.abstracto.moderation.validator;
import dev.sheldan.abstracto.core.service.FeatureValidator;
public interface WarnDecayFeatureValidator extends FeatureValidator {
}