package fr.plil.sio.persistence.jpa; 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) { 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) { if (name == null) { throw new IllegalArgumentException("name cannot be null"); } if(parent == null){ throw new IllegalArgumentException("parent cannot be null"); } List rights = new ArrayList<>(); Right right = new Right(); right.setName(name); if(rightRepository.findByName(parent.getName()).isEmpty()){ throw new IllegalArgumentException("parent name cannot be null"); } right.setParent(parent); rights.add(right); rightRepository.save(rights); parent.setSiblings(rights); return right; } @Override public boolean delete(Right right) { if(right == null) throw new IllegalArgumentException("Right cannot be null"); if(right.getId() == null) throw new IllegalArgumentException("Id cannot be null"); if(rightRepository.findByName(right.getName()).isEmpty()) return false; rightRepository.delete(right); return true; } @Override public List findByName(String name) { if(name == null) throw new IllegalArgumentException("Name cannot be null"); return rightRepository.findByName(name); } @Override public Right findOne(Long id) { if(id == null) throw new IllegalArgumentException("Id cannot be null"); return rightRepository.findOne(id); } }