From 5639ca20b51c4e7a85aeac96148f0e8aaedb36e1 Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Tue, 12 May 2020 00:55:45 +0200 Subject: [PATCH] added check to not allow two channel groups with the same name --- .../abstracto/core/repository/ChannelGroupRepository.java | 2 ++ .../management/ChannelGroupManagementServiceBean.java | 8 ++++++++ .../service/management/ChannelGroupManagementService.java | 1 + 3 files changed, 11 insertions(+) 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);