package com.odiparpack.back.odiparback.usuario; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.transaction.Transactional; import java.util.List; import java.util.Optional; @Service public class UsuarioService { private final UsuarioRepository usuarioRepository; @Autowired public UsuarioService(UsuarioRepository usuarioRepository) { this.usuarioRepository = usuarioRepository; } public List getAll() { return usuarioRepository.findAll(); } public Optional get(Long id) { return usuarioRepository.findById(id); } public Long register(Usuario usuario) { usuario.setId(null); // overwrite protection usuario = usuarioRepository.save(usuario); return usuario.getId(); } public void registerAll(List usuarios) { usuarioRepository.saveAll(usuarios); } public void delete(Long id) { boolean exists = usuarioRepository.existsById(id); if (!exists) { throw new IllegalStateException( "usuario with id " + id + " does not exists"); } usuarioRepository.deleteById(id); } // "Managed mode". Changes saved automatically @Transactional public void update(Usuario usuarioNew) { Long id = usuarioNew.getId(); if (usuarioNew.getId() == null || !usuarioRepository.existsById(id)) { throw new IllegalStateException( "usuario id (" + id + ") doesn't exist" ); } usuarioRepository.save(usuarioNew); } }