AuthorityService.java
package api.services;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import api.entities.Authority;
import api.exceptions.EntityNotFoundException;
import api.repositories.AuthorityRepository;
import lombok.extern.slf4j.Slf4j;
/**
* {@link AuthorityService}.
*/
@Slf4j
@Service
public class AuthorityService {
@Autowired
private AuthorityRepository authorityRepository;
/**
* Find authority.
*
* @param id Authority id
* @return {@link Optional} {@link Authority}
*/
@Transactional(readOnly = true)
public Optional<Authority> find(int id) {
return authorityRepository.findById(id);
}
/**
* Find authority.
*
* @param authority Authority name
* @return {@link Optional} {@link Authority}
*/
@Transactional(readOnly = true)
public Optional<Authority> find(String authority) {
return authorityRepository.findByAuthority(authority);
}
/**
* Get all authorities.
*
* @return All authorities
*/
@Transactional(readOnly = true)
public List<Authority> getAll() {
return authorityRepository.findAll();
}
/**
* Get authorities.
*
* @param ids Authority ids
* @return {@link List} of {@link Authority}
*/
@Transactional(readOnly = true)
public List<Authority> get(Iterable<Integer> ids) {
return authorityRepository.findAllById(ids);
}
/**
* Get authority.
*
* @param id Authority id
* @return {@link Authority}
*/
@Transactional(readOnly = true)
public Authority get(int id) {
return find(id)
.orElseThrow(() -> EntityNotFoundException.fromAuthority(id));
}
/**
* Get authority.
*
* @param authority Authority name
* @return {@link Authority}
*/
@Transactional(readOnly = true)
public Authority get(String authority) {
return find(authority)
.orElseThrow(() -> EntityNotFoundException.fromAuthority(authority));
}
/**
* Save authority.
*
* @param authority Authority
* @return Authority
*/
@Transactional
public Authority save(Authority authority) {
Authority saved = authorityRepository.save(authority);
log.info("Authority saved: " + authority);
return saved;
}
}