diff options
Diffstat (limited to 'src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java')
| -rw-r--r-- | src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java new file mode 100644 index 0000000..a42c2a5 --- /dev/null +++ b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java @@ -0,0 +1,60 @@ +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<Usuario> getAll() { + return usuarioRepository.findAll(); + } + + public Optional<Usuario> 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<Usuario> 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); + } + +} |
