From d1f307837d250e2a1d20cafe7bcc36194288b458 Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Fri, 8 May 2020 18:27:04 +0200 Subject: [PATCH] added initial setting for the mod mail category in a listener, so it can be configured via command --- .../listener/ModMailConfigListener.java | 20 +++++++++++++++++++ .../ConfigManagementServiceBean.java | 9 +++++++++ .../management/ConfigManagementService.java | 1 + 3 files changed, 30 insertions(+) create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailConfigListener.java diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailConfigListener.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailConfigListener.java new file mode 100644 index 000000000..96e4c2aa5 --- /dev/null +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailConfigListener.java @@ -0,0 +1,20 @@ +package dev.sheldan.abstracto.modmail.listener; + +import dev.sheldan.abstracto.core.listener.ServerConfigListener; +import dev.sheldan.abstracto.core.models.database.AServer; +import dev.sheldan.abstracto.core.service.management.ConfigManagementService; +import dev.sheldan.abstracto.modmail.service.ModMailThreadServiceBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class ModMailConfigListener implements ServerConfigListener { + + @Autowired + private ConfigManagementService configService; + + @Override + public void updateServerConfig(AServer server) { + configService.createIfNotExists(server.getId(), ModMailThreadServiceBean.MODMAIL_CATEGORY, 0L); + } +} diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementServiceBean.java index 71d16ecf6..b89d57ea5 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementServiceBean.java @@ -87,6 +87,15 @@ public class ConfigManagementServiceBean implements ConfigManagementService { return config; } + @Override + public AConfig createIfNotExists(Long serverId, String name, Long value) { + AConfig config = loadConfig(serverId, name); + if(config == null) { + return this.createConfig(serverId, name, value); + } + return config; + } + @Override public AConfig createIfNotExists(Long serverId, String name, Double value) { AConfig config = loadConfig(serverId, name); diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementService.java index 4ff5c896a..d28be93a7 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementService.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ConfigManagementService.java @@ -9,6 +9,7 @@ public interface ConfigManagementService { AConfig createConfig(Long serverId, String name, Double value); AConfig createConfig(Long serverId, String name, Long value); AConfig createIfNotExists(Long serverId, String name, String value); + AConfig createIfNotExists(Long serverId, String name, Long value); AConfig createIfNotExists(Long serverId, String name, Double value); AConfig loadConfig(Long serverId, String name); boolean configExists(Long serverId, String name);