[AB-112] adding star levels to setup feature wizard

moving star level configuration to only be instantiated when needed
This commit is contained in:
Sheldan
2021-02-14 16:35:51 +01:00
parent 23bdf4e906
commit 94532be54d
22 changed files with 153 additions and 142 deletions

View File

@@ -4,20 +4,30 @@ 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.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.utility.StarboardFeatureValidator;
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Component
public class StarboardFeature implements FeatureConfig {
public static final String STAR_LVL_CONFIG_PREFIX = "starLvl";
public static final String STAR_EMOTE_PREFIX = "star";
public static final String STAR_BADGE_EMOTE_PREFIX = "starboardBadge";
public static final String STAR_LEVELS_CONFIG_KEY = "starLvls";
@Autowired
private StarboardFeatureValidator starboardFeatureValidator;
@Autowired
private DefaultConfigManagementService defaultConfigManagementService;
@Override
public FeatureEnum getFeature() {
return UtilityFeature.STARBOARD;
@@ -33,10 +43,30 @@ public class StarboardFeature implements FeatureConfig {
return Arrays.asList(starboardFeatureValidator);
}
// TODO add missing system config keys
@Override
public List<String> getRequiredSystemConfigKeys() {
List<String> configKeys = new ArrayList<>();
int maxLevels = getMaxLevels();
for(int i = maxLevels; i > 0; i--) {
configKeys.add(StarboardFeature.STAR_LVL_CONFIG_PREFIX + i);
}
return configKeys;
}
@Override
public List<String> getRequiredEmotes() {
return Arrays.asList("star", "star1", "star2", "star3", "star4", "starboardBadge1", "starboardBadge2", "starboardBadge3");
List<String> emoteNames = new ArrayList<>();
int maxLevels = getMaxLevels();
for(int i = maxLevels; i > 0; i--) {
emoteNames.add(StarboardFeature.STAR_EMOTE_PREFIX + i);
}
emoteNames.add(StarboardFeature.STAR_BADGE_EMOTE_PREFIX + 1);
emoteNames.add(StarboardFeature.STAR_BADGE_EMOTE_PREFIX + 2);
emoteNames.add(StarboardFeature.STAR_BADGE_EMOTE_PREFIX + 3);
return emoteNames;
}
private int getMaxLevels() {
return defaultConfigManagementService.getDefaultConfig(STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
}
}