mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-01-30 01:53:09 +00:00
[AB-112] adding star levels to setup feature wizard
moving star level configuration to only be instantiated when needed
This commit is contained in:
@@ -26,8 +26,8 @@ public class ExperienceConfigListener implements ServerConfigListener {
|
|||||||
@Override
|
@Override
|
||||||
public void updateServerConfig(AServer server) {
|
public void updateServerConfig(AServer server) {
|
||||||
log.info("Setting up experience configuration for server {}.", server.getId());
|
log.info("Setting up experience configuration for server {}.", server.getId());
|
||||||
service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MIN_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MIN_EXP_KEY).getLongValue());
|
service.loadOrCreateIfNotExists(server.getId(), ExperienceFeatureConfig.MIN_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MIN_EXP_KEY).getLongValue());
|
||||||
service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MAX_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MAX_EXP_KEY).getLongValue());
|
service.loadOrCreateIfNotExists(server.getId(), ExperienceFeatureConfig.MAX_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MAX_EXP_KEY).getLongValue());
|
||||||
service.createIfNotExists(server.getId(), ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.EXP_MULTIPLIER_KEY).getDoubleValue());
|
service.loadOrCreateIfNotExists(server.getId(), ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.EXP_MULTIPLIER_KEY).getDoubleValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,6 @@ public class WarnDecayConfigListener implements ServerConfigListener {
|
|||||||
@Override
|
@Override
|
||||||
public void updateServerConfig(AServer server) {
|
public void updateServerConfig(AServer server) {
|
||||||
log.info("Updating decay day configuration for server {}.", server.getId());
|
log.info("Updating decay day configuration for server {}.", server.getId());
|
||||||
configManagementService.createIfNotExists(server.getId(), WarningDecayFeature.DECAY_DAYS_KEY, defaultConfigManagementService.getDefaultConfig(WarningDecayFeature.DECAY_DAYS_KEY).getLongValue());
|
configManagementService.loadOrCreateIfNotExists(server.getId(), WarningDecayFeature.DECAY_DAYS_KEY, defaultConfigManagementService.getDefaultConfig(WarningDecayFeature.DECAY_DAYS_KEY).getLongValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class ModMailConfigListener implements ServerConfigListener {
|
|||||||
@Override
|
@Override
|
||||||
public void updateServerConfig(AServer server) {
|
public void updateServerConfig(AServer server) {
|
||||||
log.info("Updating modmail related configuration for server {}.", server.getId());
|
log.info("Updating modmail related configuration for server {}.", server.getId());
|
||||||
configService.createIfNotExists(server.getId(), ModMailThreadServiceBean.MODMAIL_CATEGORY, 0L);
|
configService.loadOrCreateIfNotExists(server.getId(), ModMailThreadServiceBean.MODMAIL_CATEGORY, 0L);
|
||||||
configService.createIfNotExists(server.getId(), MODMAIL_CLOSING_MESSAGE_TEXT, templateService.renderSimpleTemplate("modmail_closing_user_message_description"));
|
configService.loadOrCreateIfNotExists(server.getId(), MODMAIL_CLOSING_MESSAGE_TEXT, templateService.renderSimpleTemplate("modmail_closing_user_message_description"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
<property name="modmailModule" value="(SELECT id FROM module WHERE name = 'modMail')"/>
|
<property name="modmailModule" value="(SELECT id FROM module WHERE name = 'modmail')"/>
|
||||||
<property name="modmailFeature" value="(SELECT id FROM feature WHERE key = 'modmail')"/>
|
<property name="modmailFeature" value="(SELECT id FROM feature WHERE key = 'modmail')"/>
|
||||||
<property name="today" value="(SELECT NOW())"/>
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
package dev.sheldan.abstracto.utility.config;
|
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.listener.sync.entity.ServerConfigListener;
|
|
||||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
|
||||||
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
|
||||||
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
|
||||||
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
@Slf4j
|
|
||||||
public class StarboardConfigListener implements ServerConfigListener {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ConfigManagementService configManagementService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private DefaultConfigManagementService defaultConfigManagementService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateServerConfig(AServer server) {
|
|
||||||
log.info("Creating starboard config for server {}", server.getId());
|
|
||||||
int maxLevels = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
|
|
||||||
for (int i = 0; i < maxLevels; i++) {
|
|
||||||
String configKey = StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + (i + 1);
|
|
||||||
Integer value = defaultConfigManagementService.getDefaultConfig(configKey).getLongValue().intValue();
|
|
||||||
configManagementService.createIfNotExists(server.getId(), configKey, Long.valueOf(value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,6 +7,7 @@ import dev.sheldan.abstracto.core.models.database.AChannel;
|
|||||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
import dev.sheldan.abstracto.core.models.database.PostTarget;
|
import dev.sheldan.abstracto.core.models.database.PostTarget;
|
||||||
|
import dev.sheldan.abstracto.core.models.property.SystemConfigProperty;
|
||||||
import dev.sheldan.abstracto.core.service.*;
|
import dev.sheldan.abstracto.core.service.*;
|
||||||
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
|
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
|
||||||
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
||||||
@@ -15,6 +16,7 @@ import dev.sheldan.abstracto.core.service.management.UserInServerManagementServi
|
|||||||
import dev.sheldan.abstracto.core.utils.FutureUtils;
|
import dev.sheldan.abstracto.core.utils.FutureUtils;
|
||||||
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
||||||
import dev.sheldan.abstracto.templating.service.TemplateService;
|
import dev.sheldan.abstracto.templating.service.TemplateService;
|
||||||
|
import dev.sheldan.abstracto.utility.config.features.StarboardFeature;
|
||||||
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
|
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
|
||||||
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
|
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
|
||||||
import dev.sheldan.abstracto.utility.models.template.commands.starboard.StarStatsModel;
|
import dev.sheldan.abstracto.utility.models.template.commands.starboard.StarStatsModel;
|
||||||
@@ -44,8 +46,6 @@ import java.util.stream.Collectors;
|
|||||||
public class StarboardServiceBean implements StarboardService {
|
public class StarboardServiceBean implements StarboardService {
|
||||||
|
|
||||||
public static final String STARBOARD_POST_TEMPLATE = "starboard_post";
|
public static final String STARBOARD_POST_TEMPLATE = "starboard_post";
|
||||||
public static final String STAR_LVL_CONFIG_PREFIX = "starLvl";
|
|
||||||
public static final String STAR_LEVELS_CONFIG_KEY = "starLvls";
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberService memberService;
|
private MemberService memberService;
|
||||||
@@ -227,17 +227,19 @@ public class StarboardServiceBean implements StarboardService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String buildBadgeName(Integer position) {
|
private String buildBadgeName(Integer position) {
|
||||||
return "starboardBadge" + position;
|
return StarboardFeature.STAR_BADGE_EMOTE_PREFIX + position;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getAppropriateEmote(Long serverId, Integer starCount) {
|
private String getAppropriateEmote(Long serverId, Integer starCount) {
|
||||||
int maxLevels = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
|
int maxLevels = defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
|
||||||
for(int i = maxLevels; i > 0; i--) {
|
for(int i = maxLevels; i > 0; i--) {
|
||||||
Long starMinimum = configService.getLongValue(STAR_LVL_CONFIG_PREFIX + i, serverId);
|
String key = StarboardFeature.STAR_LVL_CONFIG_PREFIX + i;
|
||||||
|
SystemConfigProperty defaultStars = defaultConfigManagementService.getDefaultConfig(key);
|
||||||
|
Long starMinimum = configService.getLongValue(key, serverId, defaultStars.getLongValue());
|
||||||
if(starCount >= starMinimum) {
|
if(starCount >= starMinimum) {
|
||||||
return emoteService.getUsableEmoteOrDefault(serverId, "star" + i);
|
return emoteService.getUsableEmoteOrDefault(serverId, StarboardFeature.STAR_EMOTE_PREFIX + i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return emoteService.getUsableEmoteOrDefault(serverId, "star0");
|
return emoteService.getUsableEmoteOrDefault(serverId, StarboardFeature.STAR_EMOTE_PREFIX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import dev.sheldan.abstracto.core.models.database.AServer;
|
|||||||
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
|
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
|
||||||
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
||||||
import dev.sheldan.abstracto.utility.StarboardFeatureValidator;
|
import dev.sheldan.abstracto.utility.StarboardFeatureValidator;
|
||||||
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
|
import dev.sheldan.abstracto.utility.config.features.StarboardFeature;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -23,10 +23,10 @@ public class StarboardFeatureValidatorService implements StarboardFeatureValidat
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void featureIsSetup(FeatureConfig featureConfig, AServer server, FeatureValidationResult validationResult) {
|
public void featureIsSetup(FeatureConfig featureConfig, AServer server, FeatureValidationResult validationResult) {
|
||||||
int levelAmount = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
|
int levelAmount = defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
|
||||||
log.info("Validating starboard feature for server {}.", server.getId());
|
log.info("Validating starboard feature for server {}.", server.getId());
|
||||||
for(int i = 1; i <= levelAmount; i++) {
|
for(int i = 1; i <= levelAmount; i++) {
|
||||||
featureValidatorService.checkSystemConfig("starLvl" + i, server, validationResult);
|
featureValidatorService.checkSystemConfig(StarboardFeature.STAR_LVL_CONFIG_PREFIX + i, server, validationResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
package dev.sheldan.abstracto.utility.config;
|
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.models.property.SystemConfigProperty;
|
|
||||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
|
||||||
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
|
||||||
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
|
||||||
import dev.sheldan.abstracto.core.test.MockUtils;
|
|
||||||
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
|
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.mockito.*;
|
|
||||||
import org.mockito.junit.MockitoJUnitRunner;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static org.mockito.Mockito.*;
|
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
|
||||||
public class StarboardConfigListenerTest {
|
|
||||||
|
|
||||||
@InjectMocks
|
|
||||||
private StarboardConfigListener testUnit;
|
|
||||||
|
|
||||||
@Mock
|
|
||||||
private ConfigManagementService configManagementService;
|
|
||||||
|
|
||||||
@Mock
|
|
||||||
private DefaultConfigManagementService defaultConfigManagementService;
|
|
||||||
|
|
||||||
@Captor
|
|
||||||
private ArgumentCaptor<String> configKeyCaptor;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testUpdateServerConfig() {
|
|
||||||
AServer server = MockUtils.getServer();
|
|
||||||
int numberOfLevels = 4;
|
|
||||||
SystemConfigProperty config = Mockito.mock(SystemConfigProperty.class);
|
|
||||||
when(config.getLongValue()).thenReturn((long) numberOfLevels);
|
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
|
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 1)).thenReturn(config);
|
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 2)).thenReturn(config);
|
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 3)).thenReturn(config);
|
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 4)).thenReturn(config);
|
|
||||||
testUnit.updateServerConfig(server);
|
|
||||||
verify(configManagementService, times(numberOfLevels)).createIfNotExists(eq(server.getId()), configKeyCaptor.capture(), anyLong());
|
|
||||||
List<String> keys = configKeyCaptor.getAllValues();
|
|
||||||
for (int i = 0; i < numberOfLevels; i++) {
|
|
||||||
Assert.assertEquals(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + (i + 1), keys.get(i));
|
|
||||||
}
|
|
||||||
Assert.assertEquals(numberOfLevels, keys.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -13,6 +13,7 @@ import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
|
|||||||
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
|
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
|
||||||
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
import dev.sheldan.abstracto.templating.model.MessageToSend;
|
||||||
import dev.sheldan.abstracto.templating.service.TemplateService;
|
import dev.sheldan.abstracto.templating.service.TemplateService;
|
||||||
|
import dev.sheldan.abstracto.utility.config.features.StarboardFeature;
|
||||||
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
|
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
|
||||||
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
|
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
|
||||||
import dev.sheldan.abstracto.utility.models.database.StarboardPostReaction;
|
import dev.sheldan.abstracto.utility.models.database.StarboardPostReaction;
|
||||||
@@ -38,7 +39,7 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
import static dev.sheldan.abstracto.utility.service.StarboardServiceBean.STARBOARD_POST_TEMPLATE;
|
import static dev.sheldan.abstracto.utility.config.features.StarboardFeature.STAR_EMOTE_PREFIX;
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
@@ -148,14 +149,18 @@ public class StarboardServiceBeanTest {
|
|||||||
when(channelService.getTextChannelFromServerOptional(SERVER_ID, CHANNEL_ID)).thenReturn(Optional.of(mockedTextChannel));
|
when(channelService.getTextChannelFromServerOptional(SERVER_ID, CHANNEL_ID)).thenReturn(Optional.of(mockedTextChannel));
|
||||||
when(guildService.getGuildByIdOptional(SERVER_ID)).thenReturn(Optional.of(guild));
|
when(guildService.getGuildByIdOptional(SERVER_ID)).thenReturn(Optional.of(guild));
|
||||||
SystemConfigProperty config = Mockito.mock(SystemConfigProperty.class);
|
SystemConfigProperty config = Mockito.mock(SystemConfigProperty.class);
|
||||||
when(config.getLongValue()).thenReturn(3L);
|
Long defaultValue = 3L;
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
|
when(config.getLongValue()).thenReturn(defaultValue);
|
||||||
when(configService.getLongValue("starLvl3", SERVER_ID)).thenReturn(3L);
|
when(defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
|
||||||
when(configService.getLongValue("starLvl2", SERVER_ID)).thenReturn(2L);
|
when(configService.getLongValue(StarboardFeature.STAR_LVL_CONFIG_PREFIX + "2", SERVER_ID, defaultValue)).thenReturn(2L);
|
||||||
when(emoteService.getUsableEmoteOrDefault(SERVER_ID, "star2")).thenReturn("b");
|
when(configService.getLongValue(StarboardFeature.STAR_LVL_CONFIG_PREFIX + "3", SERVER_ID, defaultValue)).thenReturn(3L);
|
||||||
|
when(defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LVL_CONFIG_PREFIX + "2")).thenReturn(config);
|
||||||
|
when(defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LVL_CONFIG_PREFIX + "3")).thenReturn(config);
|
||||||
|
when(emoteService.getUsableEmoteOrDefault(SERVER_ID, STAR_EMOTE_PREFIX + "2")).thenReturn("b");
|
||||||
when(self.sendStarboardPostAndStore(eq(message), eq(STARRED_SERVER_USER_ID), anyList(), any())).thenReturn(CompletableFuture.completedFuture(null));
|
when(self.sendStarboardPostAndStore(eq(message), eq(STARRED_SERVER_USER_ID), anyList(), any())).thenReturn(CompletableFuture.completedFuture(null));
|
||||||
CompletableFuture<Void> createPostFuture = testUnit.createStarboardPost(message, userExceptAuthor, userReacting, starredUser);
|
CompletableFuture<Void> createPostFuture = testUnit.createStarboardPost(message, userExceptAuthor, userReacting, starredUser);
|
||||||
Assert.assertTrue(createPostFuture.isDone());
|
createPostFuture.join();
|
||||||
|
Assert.assertFalse(createPostFuture.isCompletedExceptionally());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -163,7 +168,7 @@ public class StarboardServiceBeanTest {
|
|||||||
CachedMessage message = Mockito.mock(CachedMessage.class);
|
CachedMessage message = Mockito.mock(CachedMessage.class);
|
||||||
when(message.getServerId()).thenReturn(SERVER_ID);
|
when(message.getServerId()).thenReturn(SERVER_ID);
|
||||||
StarboardPostModel model = Mockito.mock(StarboardPostModel.class);
|
StarboardPostModel model = Mockito.mock(StarboardPostModel.class);
|
||||||
when(templateService.renderEmbedTemplate(STARBOARD_POST_TEMPLATE, model)).thenReturn(messageToSend);
|
when(templateService.renderEmbedTemplate(StarboardServiceBean.STARBOARD_POST_TEMPLATE, model)).thenReturn(messageToSend);
|
||||||
PostTarget postTarget = Mockito.mock(PostTarget.class);
|
PostTarget postTarget = Mockito.mock(PostTarget.class);
|
||||||
when(postTarget.getChannelReference()).thenReturn(starboardChannel);
|
when(postTarget.getChannelReference()).thenReturn(starboardChannel);
|
||||||
when(starboardChannel.getId()).thenReturn(STARBOARD_CHANNEL_ID);
|
when(starboardChannel.getId()).thenReturn(STARBOARD_CHANNEL_ID);
|
||||||
@@ -217,16 +222,19 @@ public class StarboardServiceBeanTest {
|
|||||||
when(post.getSourceChanel()).thenReturn(sourceChannel);
|
when(post.getSourceChanel()).thenReturn(sourceChannel);
|
||||||
when(post.getId()).thenReturn(starboardPostId);
|
when(post.getId()).thenReturn(starboardPostId);
|
||||||
MessageToSend postMessage = Mockito.mock(MessageToSend.class);
|
MessageToSend postMessage = Mockito.mock(MessageToSend.class);
|
||||||
when(templateService.renderEmbedTemplate(eq(STARBOARD_POST_TEMPLATE), starboardPostModelArgumentCaptor.capture())).thenReturn(postMessage);
|
when(templateService.renderEmbedTemplate(eq(StarboardServiceBean.STARBOARD_POST_TEMPLATE), starboardPostModelArgumentCaptor.capture())).thenReturn(postMessage);
|
||||||
when(postTargetService.editOrCreatedInPostTarget(oldPostId, postMessage, StarboardPostTarget.STARBOARD, SERVER_ID)).thenReturn(Arrays.asList(CompletableFuture.completedFuture(sendPost)));
|
when(postTargetService.editOrCreatedInPostTarget(oldPostId, postMessage, StarboardPostTarget.STARBOARD, SERVER_ID)).thenReturn(Arrays.asList(CompletableFuture.completedFuture(sendPost)));
|
||||||
when(sendPost.getIdLong()).thenReturn(newPostId);
|
when(sendPost.getIdLong()).thenReturn(newPostId);
|
||||||
SystemConfigProperty config = Mockito.mock(SystemConfigProperty.class);
|
SystemConfigProperty config = Mockito.mock(SystemConfigProperty.class);
|
||||||
when(config.getLongValue()).thenReturn(4L);
|
when(config.getLongValue()).thenReturn(1L);
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
|
when(defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
|
||||||
|
when(defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LVL_CONFIG_PREFIX + 1)).thenReturn(config);
|
||||||
when(starboardPostManagementService.findByStarboardPostId(starboardPostId)).thenReturn(Optional.of(post));
|
when(starboardPostManagementService.findByStarboardPostId(starboardPostId)).thenReturn(Optional.of(post));
|
||||||
when(memberService.getMemberInServerAsync(SERVER_ID, STARRED_USER_ID)).thenReturn(CompletableFuture.completedFuture(starredMember));
|
when(memberService.getMemberInServerAsync(SERVER_ID, STARRED_USER_ID)).thenReturn(CompletableFuture.completedFuture(starredMember));
|
||||||
List<AUserInAServer > userExceptAuthor = new ArrayList<>();
|
List<AUserInAServer > userExceptAuthor = new ArrayList<>();
|
||||||
testUnit.updateStarboardPost(post, message, userExceptAuthor);
|
CompletableFuture<Void> future = testUnit.updateStarboardPost(post, message, userExceptAuthor);
|
||||||
|
future.join();
|
||||||
|
Assert.assertFalse(future.isCompletedExceptionally());
|
||||||
verify(postTargetService, times(1)).editOrCreatedInPostTarget(oldPostId, postMessage, StarboardPostTarget.STARBOARD, SERVER_ID);
|
verify(postTargetService, times(1)).editOrCreatedInPostTarget(oldPostId, postMessage, StarboardPostTarget.STARBOARD, SERVER_ID);
|
||||||
verify(starboardPostManagementService, times(1)).setStarboardPostMessageId(post, newPostId);
|
verify(starboardPostManagementService, times(1)).setStarboardPostMessageId(post, newPostId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import dev.sheldan.abstracto.core.models.database.AServer;
|
|||||||
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
|
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
|
||||||
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
||||||
import dev.sheldan.abstracto.core.test.MockUtils;
|
import dev.sheldan.abstracto.core.test.MockUtils;
|
||||||
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
|
import dev.sheldan.abstracto.utility.config.features.StarboardFeature;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -37,14 +37,14 @@ public class StarboardFeatureValidatorServiceTest {
|
|||||||
int levelCount = 4;
|
int levelCount = 4;
|
||||||
SystemConfigProperty config = Mockito.mock(SystemConfigProperty.class);
|
SystemConfigProperty config = Mockito.mock(SystemConfigProperty.class);
|
||||||
when(config.getLongValue()).thenReturn((long) levelCount);
|
when(config.getLongValue()).thenReturn((long) levelCount);
|
||||||
when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
|
when(defaultConfigManagementService.getDefaultConfig(StarboardFeature.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
|
||||||
|
|
||||||
testUnit.featureIsSetup(null, server, null);
|
testUnit.featureIsSetup(null, server, null);
|
||||||
verify(featureValidatorService, times(levelCount)).checkSystemConfig(configKeyCaptor.capture(), eq(server), any());
|
verify(featureValidatorService, times(levelCount)).checkSystemConfig(configKeyCaptor.capture(), eq(server), any());
|
||||||
List<String> allValues = configKeyCaptor.getAllValues();
|
List<String> allValues = configKeyCaptor.getAllValues();
|
||||||
for (int i = 0; i < allValues.size(); i++) {
|
for (int i = 0; i < allValues.size(); i++) {
|
||||||
String key = allValues.get(i);
|
String key = allValues.get(i);
|
||||||
Assert.assertEquals("starLvl" + ( i + 1 ), key);
|
Assert.assertEquals(StarboardFeature.STAR_LVL_CONFIG_PREFIX + ( i + 1 ), key);
|
||||||
}
|
}
|
||||||
Assert.assertEquals(levelCount, allValues.size());
|
Assert.assertEquals(levelCount, allValues.size());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,20 +4,30 @@ import dev.sheldan.abstracto.core.config.FeatureConfig;
|
|||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
import dev.sheldan.abstracto.core.config.PostTargetEnum;
|
import dev.sheldan.abstracto.core.config.PostTargetEnum;
|
||||||
import dev.sheldan.abstracto.core.service.FeatureValidator;
|
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.StarboardFeatureValidator;
|
||||||
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
|
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class StarboardFeature implements FeatureConfig {
|
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
|
@Autowired
|
||||||
private StarboardFeatureValidator starboardFeatureValidator;
|
private StarboardFeatureValidator starboardFeatureValidator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DefaultConfigManagementService defaultConfigManagementService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return UtilityFeature.STARBOARD;
|
return UtilityFeature.STARBOARD;
|
||||||
@@ -33,10 +43,30 @@ public class StarboardFeature implements FeatureConfig {
|
|||||||
return Arrays.asList(starboardFeatureValidator);
|
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
|
@Override
|
||||||
public List<String> getRequiredEmotes() {
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class SetConfig extends AbstractConditionableCommand {
|
|||||||
public CommandResult execute(CommandContext commandContext) {
|
public CommandResult execute(CommandContext commandContext) {
|
||||||
String key = (String) commandContext.getParameters().getParameters().get(0);
|
String key = (String) commandContext.getParameters().getParameters().get(0);
|
||||||
String value = (String) commandContext.getParameters().getParameters().get(1);
|
String value = (String) commandContext.getParameters().getParameters().get(1);
|
||||||
configService.setConfigValue(key, commandContext.getGuild().getIdLong(), value);
|
configService.setOrCreateConfigValue(key, commandContext.getGuild().getIdLong(), value);
|
||||||
|
|
||||||
return CommandResult.fromSuccess();
|
return CommandResult.fromSuccess();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public class SystemConfigDelayedAction implements DelayedAction {
|
|||||||
public void execute(DelayedActionConfig delayedActionConfig) {
|
public void execute(DelayedActionConfig delayedActionConfig) {
|
||||||
SystemConfigDelayedActionConfig concrete = (SystemConfigDelayedActionConfig) delayedActionConfig;
|
SystemConfigDelayedActionConfig concrete = (SystemConfigDelayedActionConfig) delayedActionConfig;
|
||||||
log.trace("Executing delayed system config action for key {} in server {}.", concrete.getConfigKey(), concrete.getServerId());
|
log.trace("Executing delayed system config action for key {} in server {}.", concrete.getConfigKey(), concrete.getServerId());
|
||||||
configService.setConfigValue(concrete.getConfigKey(), concrete.getServerId(), concrete.getValue());
|
configService.setOrCreateConfigValue(concrete.getServerId(), concrete.getConfigKey(), concrete.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class SystemConfigSetupStep extends AbstractConfigSetupStep {
|
|||||||
config = self.loadDefaultConfig(systemConfigStepParameter);
|
config = self.loadDefaultConfig(systemConfigStepParameter);
|
||||||
log.info("It was decided to keep the original value for key {} in server {}.", systemConfigStepParameter.getConfigKey(), user.getGuildId());
|
log.info("It was decided to keep the original value for key {} in server {}.", systemConfigStepParameter.getConfigKey(), user.getGuildId());
|
||||||
} else {
|
} else {
|
||||||
config = self.checkValidity(user, systemConfigStepParameter, event);
|
config = self.checkValidity(systemConfigStepParameter, event);
|
||||||
log.trace("The given value for key {} in server {} was valid.", systemConfigStepParameter.getConfigKey(), user.getGuildId());
|
log.trace("The given value for key {} in server {} was valid.", systemConfigStepParameter.getConfigKey(), user.getGuildId());
|
||||||
}
|
}
|
||||||
SystemConfigDelayedActionConfig build = SystemConfigDelayedActionConfig
|
SystemConfigDelayedActionConfig build = SystemConfigDelayedActionConfig
|
||||||
@@ -120,8 +120,8 @@ public class SystemConfigSetupStep extends AbstractConfigSetupStep {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public AConfig checkValidity(AServerChannelUserId user, SystemConfigStepParameter systemConfigStepParameter, MessageReceivedEvent event) {
|
public AConfig checkValidity(SystemConfigStepParameter systemConfigStepParameter, MessageReceivedEvent event) {
|
||||||
return configService.getFakeConfigForValue(systemConfigStepParameter.getConfigKey(), user.getGuildId(), event.getMessage().getContentRaw());
|
return configService.getFakeConfigForValue(systemConfigStepParameter.getConfigKey(), event.getMessage().getContentRaw());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,6 @@ public class CoreServiceConfigListener implements ServerConfigListener {
|
|||||||
public void updateServerConfig(AServer server) {
|
public void updateServerConfig(AServer server) {
|
||||||
log.info("Creating prefix config for server {}.", server.getId());
|
log.info("Creating prefix config for server {}.", server.getId());
|
||||||
String defaultPrefix = defaultConfigManagementService.getDefaultConfig(CommandManager.PREFIX).getStringValue();
|
String defaultPrefix = defaultConfigManagementService.getDefaultConfig(CommandManager.PREFIX).getStringValue();
|
||||||
configManagementService.createIfNotExists(server.getId(), CommandManager.PREFIX, defaultPrefix);
|
configManagementService.loadOrCreateIfNotExists(server.getId(), CommandManager.PREFIX, defaultPrefix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,16 +2,21 @@ package dev.sheldan.abstracto.core.service;
|
|||||||
|
|
||||||
import dev.sheldan.abstracto.core.exception.ConfigurationKeyNotFoundException;
|
import dev.sheldan.abstracto.core.exception.ConfigurationKeyNotFoundException;
|
||||||
import dev.sheldan.abstracto.core.models.database.AConfig;
|
import dev.sheldan.abstracto.core.models.database.AConfig;
|
||||||
|
import dev.sheldan.abstracto.core.models.property.SystemConfigProperty;
|
||||||
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
||||||
|
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class ConfigServiceBean implements ConfigService{
|
public class ConfigServiceBean implements ConfigService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ConfigManagementService configManagementService;
|
private ConfigManagementService configManagementService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DefaultConfigManagementService defaultConfigManagementService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Double getDoubleValue(String name, Long serverId) {
|
public Double getDoubleValue(String name, Long serverId) {
|
||||||
return getDoubleValue(name, serverId, 0D);
|
return getDoubleValue(name, serverId, 0D);
|
||||||
@@ -84,6 +89,27 @@ public class ConfigServiceBean implements ConfigService{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AConfig setOrCreateConfigValue(String name, Long serverId, String value) {
|
||||||
|
if(defaultConfigManagementService.configKeyExists(name)) {
|
||||||
|
AConfig fakeConfigValue = getFakeConfigForValue(name, value);
|
||||||
|
return setOrCreateConfigValue(serverId, name, fakeConfigValue);
|
||||||
|
} else {
|
||||||
|
throw new ConfigurationKeyNotFoundException(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AConfig setOrCreateConfigValue(Long serverId, String name, AConfig value) {
|
||||||
|
if(value.getDoubleValue() != null) {
|
||||||
|
return configManagementService.setOrCreateDoubleValue(serverId, name, value.getDoubleValue());
|
||||||
|
} else if(value.getLongValue() != null) {
|
||||||
|
return configManagementService.setOrCreateLongValue(serverId, name, value.getLongValue());
|
||||||
|
} else {
|
||||||
|
return configManagementService.setOrCreateStringValue(serverId, name, value.getStringValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setConfigValue(String name, Long serverId, AConfig value) {
|
public void setConfigValue(String name, Long serverId, AConfig value) {
|
||||||
if(value.getDoubleValue() != null) {
|
if(value.getDoubleValue() != null) {
|
||||||
@@ -105,9 +131,9 @@ public class ConfigServiceBean implements ConfigService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean configIsFitting(String name, Long serverId, String value) {
|
public boolean configurationIsValid(String name, String value) {
|
||||||
try {
|
try {
|
||||||
getFakeConfigForValue(name, serverId, value);
|
getFakeConfigForValue(name, value);
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return false;
|
return false;
|
||||||
@@ -115,13 +141,13 @@ public class ConfigServiceBean implements ConfigService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AConfig getFakeConfigForValue(String name, Long serverId, String value) {
|
public AConfig getFakeConfigForValue(String name, String value) {
|
||||||
if(configManagementService.configExists(serverId, name)) {
|
if(defaultConfigManagementService.configKeyExists(name)) {
|
||||||
AConfig newConfig = AConfig.builder().name(value).build();
|
AConfig newConfig = AConfig.builder().name(value).build();
|
||||||
AConfig existing = configManagementService.loadConfig(serverId, name);
|
SystemConfigProperty defaultConfig = defaultConfigManagementService.getDefaultConfig(name);
|
||||||
if(existing.getDoubleValue() != null) {
|
if(defaultConfig.getDoubleValue() != null) {
|
||||||
newConfig.setDoubleValue(Double.parseDouble(value));
|
newConfig.setDoubleValue(Double.parseDouble(value));
|
||||||
} else if(existing.getLongValue() != null) {
|
} else if(defaultConfig.getLongValue() != null) {
|
||||||
newConfig.setLongValue(Long.parseLong(value));
|
newConfig.setLongValue(Long.parseLong(value));
|
||||||
} else {
|
} else {
|
||||||
newConfig.setStringValue(value);
|
newConfig.setStringValue(value);
|
||||||
|
|||||||
@@ -39,6 +39,17 @@ public class ConfigManagementServiceBean implements ConfigManagementService {
|
|||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AConfig setOrCreateLongValue(Long serverId, String name, Long value) {
|
||||||
|
AConfig config = loadConfig(serverId, name);
|
||||||
|
if(config == null) {
|
||||||
|
config = createConfig(serverId, name, value);
|
||||||
|
} else {
|
||||||
|
config.setLongValue(value);
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AConfig createConfig(Long serverId, String name, String value) {
|
public AConfig createConfig(Long serverId, String name, String value) {
|
||||||
AServer server = serverManagementService.loadOrCreate(serverId);
|
AServer server = serverManagementService.loadOrCreate(serverId);
|
||||||
@@ -82,7 +93,7 @@ public class ConfigManagementServiceBean implements ConfigManagementService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AConfig createIfNotExists(Long serverId, String name, String value) {
|
public AConfig loadOrCreateIfNotExists(Long serverId, String name, String value) {
|
||||||
AConfig config = loadConfig(serverId, name);
|
AConfig config = loadConfig(serverId, name);
|
||||||
if(config == null) {
|
if(config == null) {
|
||||||
return this.createConfig(serverId, name, value);
|
return this.createConfig(serverId, name, value);
|
||||||
@@ -91,7 +102,7 @@ public class ConfigManagementServiceBean implements ConfigManagementService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AConfig createIfNotExists(Long serverId, String name, Long value) {
|
public AConfig loadOrCreateIfNotExists(Long serverId, String name, Long value) {
|
||||||
AConfig config = loadConfig(serverId, name);
|
AConfig config = loadConfig(serverId, name);
|
||||||
if(config == null) {
|
if(config == null) {
|
||||||
return this.createConfig(serverId, name, value);
|
return this.createConfig(serverId, name, value);
|
||||||
@@ -100,7 +111,7 @@ public class ConfigManagementServiceBean implements ConfigManagementService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AConfig createIfNotExists(Long serverId, String name, Double value) {
|
public AConfig loadOrCreateIfNotExists(Long serverId, String name, Double value) {
|
||||||
AConfig config = loadConfig(serverId, name);
|
AConfig config = loadConfig(serverId, name);
|
||||||
if(config == null) {
|
if(config == null) {
|
||||||
return this.createConfig(serverId, name, value);
|
return this.createConfig(serverId, name, value);
|
||||||
|
|||||||
@@ -17,4 +17,9 @@ public class DefaultConfigManagementServiceBean implements DefaultConfigManageme
|
|||||||
public SystemConfigProperty getDefaultConfig(String key) {
|
public SystemConfigProperty getDefaultConfig(String key) {
|
||||||
return defaultConfigProperties.getSystemConfigs().get(key);
|
return defaultConfigProperties.getSystemConfigs().get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean configKeyExists(String key) {
|
||||||
|
return defaultConfigProperties.getSystemConfigs().containsKey(key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,4 +14,15 @@ public class SystemConfigProperty {
|
|||||||
private Long longValue;
|
private Long longValue;
|
||||||
private String stringValue;
|
private String stringValue;
|
||||||
private Double doubleValue;
|
private Double doubleValue;
|
||||||
|
|
||||||
|
public String getValueAsString() {
|
||||||
|
if(getLongValue() != null) {
|
||||||
|
return getLongValue().toString();
|
||||||
|
} else if(getDoubleValue() != null) {
|
||||||
|
return getDoubleValue().toString();
|
||||||
|
} else if(getStringValue() != null) {
|
||||||
|
return getStringValue();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +8,14 @@ public interface ConfigService {
|
|||||||
Double getDoubleValue(String name, Long serverId, Double defaultValue);
|
Double getDoubleValue(String name, Long serverId, Double defaultValue);
|
||||||
String getStringValue(String name, Long serverId, String defaultValue);
|
String getStringValue(String name, Long serverId, String defaultValue);
|
||||||
Long getLongValue(String name, Long serverId, Long defaultValue);
|
Long getLongValue(String name, Long serverId, Long defaultValue);
|
||||||
|
AConfig setOrCreateConfigValue(Long serverId, String name, AConfig value);
|
||||||
void setDoubleValue(String name, Long serverId, Double value);
|
void setDoubleValue(String name, Long serverId, Double value);
|
||||||
void setLongValue(String name, Long serverId, Long value);
|
void setLongValue(String name, Long serverId, Long value);
|
||||||
void setConfigValue(String name, Long serverId, String value);
|
void setConfigValue(String name, Long serverId, String value);
|
||||||
|
AConfig setOrCreateConfigValue(String name, Long serverId, String value);
|
||||||
void setConfigValue(String name, Long serverId, AConfig value);
|
void setConfigValue(String name, Long serverId, AConfig value);
|
||||||
void setStringValue(String name, Long serverId, String value);
|
void setStringValue(String name, Long serverId, String value);
|
||||||
boolean configIsFitting(String name, Long serverId, String value);
|
boolean configurationIsValid(String name, String value);
|
||||||
AConfig getFakeConfigForValue(String name, Long serverId, String value);
|
AConfig getFakeConfigForValue(String name, String value);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,12 +6,13 @@ import dev.sheldan.abstracto.core.models.database.AServer;
|
|||||||
public interface ConfigManagementService {
|
public interface ConfigManagementService {
|
||||||
AConfig setOrCreateStringValue(Long serverId, String name, String value);
|
AConfig setOrCreateStringValue(Long serverId, String name, String value);
|
||||||
AConfig setOrCreateDoubleValue(Long serverId, String name, Double value);
|
AConfig setOrCreateDoubleValue(Long serverId, String name, Double value);
|
||||||
|
AConfig setOrCreateLongValue(Long serverId, String name, Long value);
|
||||||
AConfig createConfig(Long serverId, String name, String value);
|
AConfig createConfig(Long serverId, String name, String value);
|
||||||
AConfig createConfig(Long serverId, String name, Double value);
|
AConfig createConfig(Long serverId, String name, Double value);
|
||||||
AConfig createConfig(Long serverId, String name, Long value);
|
AConfig createConfig(Long serverId, String name, Long value);
|
||||||
AConfig createIfNotExists(Long serverId, String name, String value);
|
AConfig loadOrCreateIfNotExists(Long serverId, String name, String value);
|
||||||
AConfig createIfNotExists(Long serverId, String name, Long value);
|
AConfig loadOrCreateIfNotExists(Long serverId, String name, Long value);
|
||||||
AConfig createIfNotExists(Long serverId, String name, Double value);
|
AConfig loadOrCreateIfNotExists(Long serverId, String name, Double value);
|
||||||
AConfig loadConfig(Long serverId, String name);
|
AConfig loadConfig(Long serverId, String name);
|
||||||
boolean configExists(Long serverId, String name);
|
boolean configExists(Long serverId, String name);
|
||||||
boolean configExists(AServer server, String name);
|
boolean configExists(AServer server, String name);
|
||||||
|
|||||||
@@ -4,4 +4,5 @@ import dev.sheldan.abstracto.core.models.property.SystemConfigProperty;
|
|||||||
|
|
||||||
public interface DefaultConfigManagementService {
|
public interface DefaultConfigManagementService {
|
||||||
SystemConfigProperty getDefaultConfig(String key);
|
SystemConfigProperty getDefaultConfig(String key);
|
||||||
|
boolean configKeyExists(String key);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user