1
resposta

Mensagem de sucesso/erro na página de cadastro.

Oi professor. Estou tentando usar a mesma logica da mensagem de sucesso/erro na página de cadastro, mas sempre aparece a mensagem de erro, mesmo que o cadastro tenha sido efetuado com sucesso. Segue o código do cadastro-clientes.js

const formCadastroCliente = document.querySelector('[data-form]')

const mensagemSucesso= (mensagem) => {
    const linha = document.createElement('div')

    const conteudoLinha = `
    <div class="alert alert-success" role="alert">
        ${mensagem}
    </div>
    `
    linha.innerHTML = conteudoLinha

    return linha
}

const mensagemErro= (mensagem) => {
    const linha = document.createElement('div')

    const conteudoLinha = `
    <div class="alert alert-warning" role="alert">
        ${mensagem}
    </div>
    `
    linha.innerHTML = conteudoLinha

    return linha
}

formCadastroCliente.addEventListener("submit", event => {
    event.preventDefault()
    const nome = event.target.querySelector('[data-nome]').value
    const cpf = event.target.querySelector('[data-cpf]').value    

    if(validarCPF(cpf)){
        cadastrarClientes(nome, cpf)        
        .then (resp => {
            if (resp.status === 200) {
                formCadastroCliente.appendChild(mensagemSucesso('Cliente cadastrado com sucesso'))
            }else{
                formCadastroCliente.appendChild(mensagemErro('Erro ao cadastrar o cliente'))
            }
        })
        document.querySelector('[data-form]').reset()
    }else{
        alert('Este CPF não é válido.')
    }

})
1 resposta

Fala ai Caio, tudo bem? Precisa ver qual está sendo o código retornado pela API quando um novo registro é criado, normalmente é retornado o 201 (Created) em vez do 200 (Ok).

Se for isso, você precisaria fazer o if verificando por 201 e não mais 200 ou pode usar resp.ok, algo assim:

if (resp.ok) {
    // sucesso
} else {
    // erro
}

Espero ter ajudado.