export default class User {
constructor(apiUrl, apiStrategy) {
this.apiUrl = apiUrl;
this.apiStrategy = apiStrategy;
}
async fetchUsers() {
return await this.apiStrategy.fetchUsers();
}
async buscarUsuariosRelatorio(){
return await this.apiStrategy.buscarUsuariosRelatorio();
};
async excluirUsuario (registro){
return await this.apiStrategy.excluirUsuario(registro);
};
async render() {
const users = await this.buscarUsuariosRelatorio();
const container = document.createElement('div');
container.className = 'container';
const title = document.createElement('h1');
title.textContent = 'Usuários Cadastrados';
container.appendChild(title);
const userList = document.createElement('ul');
users.forEach(usuario => {
const userItem = document.createElement('li');
userItem.textContent = `${usuario.id} (E-mail: ${usuario.email}) `;
const deleteButton = document.createElement('button');
deleteButton.textContent = 'Excluir';
deleteButton.onclick = () => this.confirmarExclusao(usuario);
userItem.appendChild(deleteButton);
userList.appendChild(userItem);
});
container.appendChild(userList);
return container;
}
async confirmarExclusao(usuario) {
if (confirm(`Tem certeza que deseja excluir o usuário ${usuario.email}?`)) {
await this.excluirUsuario(usuario.id);
document.getElementById('main-container').innerHTML = '';
document.getElementById('main-container').appendChild(await this.render());
}
}
}
|