diff --git a/src/main/java/fr/plil/sio/persistence/api/Right.java b/src/main/java/fr/plil/sio/persistence/api/Right.java index 524c4af..b37eceb 100644 --- a/src/main/java/fr/plil/sio/persistence/api/Right.java +++ b/src/main/java/fr/plil/sio/persistence/api/Right.java @@ -31,12 +31,10 @@ public class Right implements Serializable{ private String name; /// the parent right - @ManyToOne(optional = false) - @JoinColumn(name = "RIGHT_ID") - @Column(name = "PARENT_C") + @ManyToOne(optional = true) private Right parent; - @ManyToOne(optional = false) + @ManyToOne(optional = true) @JoinColumn(name = "GROUP_ID") private Group group; diff --git a/src/main/java/fr/plil/sio/persistence/jpa/GroupServiceJpa.java b/src/main/java/fr/plil/sio/persistence/jpa/GroupServiceJpa.java index 3302278..18463cb 100644 --- a/src/main/java/fr/plil/sio/persistence/jpa/GroupServiceJpa.java +++ b/src/main/java/fr/plil/sio/persistence/jpa/GroupServiceJpa.java @@ -29,7 +29,15 @@ public class GroupServiceJpa implements GroupService { @Override public boolean delete(String name) { - throw new IllegalStateException("not implemented !"); + if(name == null) + throw new IllegalArgumentException("Name cannot be null"); + + Group group = groupRepository.findByName(name); + if(group == null) + return false; + + groupRepository.delete(group); + return true; } @Override @@ -42,6 +50,7 @@ public class GroupServiceJpa implements GroupService { @Override public boolean addRight(String groupName, Right right) { + return false; } diff --git a/src/main/java/fr/plil/sio/persistence/jpa/RightRepository.java b/src/main/java/fr/plil/sio/persistence/jpa/RightRepository.java new file mode 100644 index 0000000..6aa776b --- /dev/null +++ b/src/main/java/fr/plil/sio/persistence/jpa/RightRepository.java @@ -0,0 +1,10 @@ +package fr.plil.sio.persistence.jpa; + +import fr.plil.sio.persistence.api.Right; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface RightRepository extends JpaRepository { + + Right findByName(String name); + +} diff --git a/src/main/java/fr/plil/sio/persistence/jpa/RightServiceJpa.java b/src/main/java/fr/plil/sio/persistence/jpa/RightServiceJpa.java index 6b0f6d4..4a3b794 100644 --- a/src/main/java/fr/plil/sio/persistence/jpa/RightServiceJpa.java +++ b/src/main/java/fr/plil/sio/persistence/jpa/RightServiceJpa.java @@ -1,35 +1,81 @@ package fr.plil.sio.persistence.jpa; +import fr.plil.sio.persistence.api.Group; import fr.plil.sio.persistence.api.Right; import fr.plil.sio.persistence.api.RightService; +import java.util.ArrayList; import org.springframework.stereotype.Service; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; @Service public class RightServiceJpa implements RightService { + + @Autowired + private RightRepository rightRepository; + @Override public Right create(String name) { - return null; + if (name == null) { + throw new IllegalArgumentException("name cannot be null"); + } + + List rights = new ArrayList<>(); + + Right right = new Right(); + right.setName(name); + + rights.add(right); + rightRepository.save(rights); + + return right; } @Override public Right create(String name, Right parent) { - return null; + if (name == null) { + throw new IllegalArgumentException("name cannot be null"); + } + + List rights = new ArrayList<>(); + + Right right = new Right(); + right.setName(name); + right.setParent(parent); + rights.add(right); + rightRepository.save(rights); + + return right; } @Override public boolean delete(Right right) { - return false; + if(right == null) + throw new IllegalArgumentException("Right cannot be null"); + + rightRepository.delete(right); + return true; } @Override - public List findByName(String name) { - return null; + public List findByName(String name) { + if(name == null) + throw new IllegalArgumentException("Name cannot be null"); + + Right right = rightRepository.findByName(name); + List rights = new ArrayList<>(); + rights.add(right); + + return rights; } @Override public Right findOne(Long id) { - return null; + + if(id == null) + throw new IllegalArgumentException("Id cannot be null"); + + return rightRepository.findOne(id); } } diff --git a/src/main/java/fr/plil/sio/persistence/jpa/UserServiceJpa.java b/src/main/java/fr/plil/sio/persistence/jpa/UserServiceJpa.java index f950761..a9ef8ec 100644 --- a/src/main/java/fr/plil/sio/persistence/jpa/UserServiceJpa.java +++ b/src/main/java/fr/plil/sio/persistence/jpa/UserServiceJpa.java @@ -7,23 +7,57 @@ import org.springframework.stereotype.Service; @Service public class UserServiceJpa implements UserService { + + /*@Autowired + UserRepository userRepository; + GroupRepository groupRepository; */ + @Override public User create(String name, String groupName) { + /* if (name == null) { + throw new IllegalArgumentException("name cannot be null"); + } + + User user = userRepository.findByName(name); + Group group = groupRepository.findByName(name); + if (user != null) { + throw new IllegalStateException("a user with the same name already exists"); + } + user = new User(); + user.setName(name); + user.setGroup(group); + userRepository.save(user);*/ return null; } @Override public boolean delete(String name) { + /* if(name == null){ + return false; + } + User user = userRepository.findByName(name); + + userRepository.delete(user);*/ + return false; } @Override public User findByName(String name) { + /*if (name == null) { + throw new IllegalArgumentException("name cannot be null"); + } + return userRepository.findByName(name);*/ return null; } @Override public boolean isUserHasRight(String userName, Right right) { + /*if(userName == null) + throw new IllegalArgumentException("name cannot be null"); + if(right == null) + throw new IllegalArgumentException("Right cannot be null"); + */ return false; } } diff --git a/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java b/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java index 0b36a8e..402a5bd 100644 --- a/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java +++ b/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java @@ -1,6 +1,7 @@ package fr.plil.sio.persistence.jpa; import fr.plil.sio.persistence.api.*; +import javax.transaction.Transactional; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -10,6 +11,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static org.junit.Assert.*; +@Transactional @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class GroupServiceTest { diff --git a/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java b/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java index c214d9e..3068c09 100644 --- a/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java +++ b/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java @@ -2,6 +2,7 @@ package fr.plil.sio.persistence.jpa; import fr.plil.sio.persistence.api.Right; import fr.plil.sio.persistence.api.RightService; +import javax.transaction.Transactional; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -10,6 +11,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static org.junit.Assert.*; +@Transactional @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class RightServiceTest { diff --git a/src/test/java/fr/plil/sio/persistence/jpa/UserServiceTest.java b/src/test/java/fr/plil/sio/persistence/jpa/UserServiceTest.java index 55d79f8..7e1574e 100644 --- a/src/test/java/fr/plil/sio/persistence/jpa/UserServiceTest.java +++ b/src/test/java/fr/plil/sio/persistence/jpa/UserServiceTest.java @@ -1,6 +1,7 @@ package fr.plil.sio.persistence.jpa; import fr.plil.sio.persistence.api.*; +import javax.transaction.Transactional; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -10,6 +11,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static org.junit.Assert.*; +@Transactional @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class UserServiceTest { -- libgit2 0.21.2