package fr.plil.sio.persistence.jdbc; import fr.plil.sio.persistence.api.Right; import fr.plil.sio.persistence.api.RightService; import org.springframework.stereotype.Service; import java.lang.Math; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @Service public class RightServiceJdbc implements RightService { @Autowired private RightRepository rightRepository; @Override public Right create(String name) { if(name==null){ throw new IllegalArgumentException("name cannot be null"); } Right right = new Right(); right.setName(name); rightRepository.save(right, 0); 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"); } if (parent.getId()==null){ throw new IllegalArgumentException("parent id cannot be null"); } Right right = new Right(); right.setName(name); right.setParent(parent); int parentID = Math.toIntExact(parent.getId()); rightRepository.save(right, parentID); return right; } @Override public boolean delete(Right right) { if(right==null){ throw new IllegalArgumentException("name cannot be null"); } if(rightRepository.findByName(right.getName()).size()==0){ throw new IllegalArgumentException("right not in database"); } return rightRepository.delete(right.getId()); } @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("name cannot be null"); } return rightRepository.findOne(id); } }