diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java index 9c3fdc63c..d9ef5ed42 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java @@ -15,4 +15,6 @@ public interface ChannelGroupRepository extends JpaRepository findByServer(AServer server); + + boolean existsByGroupNameAndServer(String name, AServer server); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementServiceBean.java index 8fc1abc42..ff32116d9 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementServiceBean.java @@ -24,6 +24,9 @@ public class ChannelGroupManagementServiceBean implements ChannelGroupManagement @Override public AChannelGroup createChannelGroup(String name, AServer server) { name = name.toLowerCase(); + if(doesChannelGroupExist(name, server)) { + throw new ChannelException("Channel group already exists."); + } AChannelGroup channelGroup = AChannelGroup .builder() .groupName(name) @@ -33,6 +36,11 @@ public class ChannelGroupManagementServiceBean implements ChannelGroupManagement return channelGroup; } + @Override + public boolean doesChannelGroupExist(String name, AServer server) { + return channelGroupRepository.existsByGroupNameAndServer(name, server); + } + @Override public void deleteChannelGroup(String name, AServer server) { name = name.toLowerCase(); diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementService.java index 45cf9076a..8c1421f51 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementService.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/ChannelGroupManagementService.java @@ -8,6 +8,7 @@ import java.util.List; public interface ChannelGroupManagementService { AChannelGroup createChannelGroup(String name, AServer server); + boolean doesChannelGroupExist(String name, AServer server); void deleteChannelGroup(String name, AServer server); AChannelGroup addChannelToChannelGroup(AChannelGroup channelGroup, AChannel channel); void removeChannelFromChannelGroup(AChannelGroup channelGroup, AChannel channel);