package fr.plil.sio.persistence.jdbc; import fr.plil.sio.persistence.api.Group; import fr.plil.sio.persistence.api.GroupService; import fr.plil.sio.persistence.api.Right; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.LinkedList; @Service public class GroupServiceJdbc implements GroupService { @Autowired private GroupRepository groupRepository; @Override public Group create(String name) { if (name == null) { throw new IllegalArgumentException("name cannot be null"); } Group group = groupRepository.findByName(name); if (group != null) { throw new IllegalStateException("a group with the same name already exists"); } group = new Group(); group.setName(name); groupRepository.save(group); return group; } @Override public boolean delete(String name) { if (name == null) { throw new IllegalArgumentException("name cannot be null"); } Group group = findByName(name); if(group==null){ return false; } groupRepository.delete(group.getId()); return true; } @Override public Group findByName(String name) { if (name == null) { throw new IllegalArgumentException("name cannot be null"); } return groupRepository.findByName(name); } @Override public boolean addRight(String groupName, Right right) { if(groupName==null || right ==null){ throw new IllegalArgumentException("name cannot be null"); } Group group = groupRepository.findByName(groupName); if (group == null) { throw new IllegalArgumentException("group cannot be null"); } group.setName(groupName); List list = group.getRights(); list.add(right); group.setRights(list); return true; } @Override public boolean removeRight(String groupName, Right right) { if(right==null){ throw new IllegalArgumentException("name cannot be null"); } Group group = groupRepository.findByName(groupName); if (group != null) { throw new IllegalStateException("a group with the same name already exists"); } return true; } }