package br.gov.servicos.editor.usuarios; import lombok.AccessLevel; import lombok.experimental.FieldDefaults; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.PathVariable; import static java.lang.Long.valueOf; @Component @FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true) public class UsuarioService { UsuarioRepository usuarios; @Autowired public UsuarioService(UsuarioRepository usuarios) { this.usuarios = usuarios; } public Usuario findByCpf(@PathVariable("cpf") String cpf) { Usuario usuario = usuarios.findByCpf(cpf); if (usuario == null) { throw new UsuarioInexistenteException(); } return usuario; } public Iterable<Usuario> findAll() { return usuarios.findAll(); } public Usuario save(Usuario usuario) { return usuarios.save(usuario); } public Usuario findById(String usuarioId) { return usuarios.findById(valueOf(usuarioId)); } public Usuario habilitarDesabilitarUsuario(String usuarioId) { Usuario usuario = findById(usuarioId); return save(usuario.withHabilitado(!usuario.isHabilitado())); } public void desabilitarUsuario(String usuarioId) { Usuario usuario = findById(usuarioId); save(usuario.withHabilitado(false)); } }