Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Retornando os dados no response do postman

O que poderia fazer para retornar os dados criados ou atualizados no console do Postman. E na deleção o que poderia fazer para exibir uma mensagem de sucesso.

    altera(id, valores, resp) {
        valores.data = moment(valores.data, 'DD/MM/YYYY').format('YYYY-MM-DD HH:mm:ss')

        const sql = `UPDATE atendimentos SET ? WHERE id = ?`

        conexao.query(sql, [valores, id], (erro, resultados) => {
            if(erro) {
                resp.status(400).json(erro)
            } else {
                resp.status(200).json(resultados)
            }
        })
    }

    remove(id, resp) {
        const sql = `DELETE FROM atendimentos WHERE id = ${id}`

        conexao.query(sql, (erro) => {
            if(erro) {
                resp.status(400).json(erro)
            } else {
                resp.status(204).json('Atendimento deletado com sucesso')
            }
        })
    }

    adiciona(atendimento, resp) {
        const dataCriacao = moment().format('YYYY-MM-DD HH:mm:ss')
        const data = moment(atendimento.data, 'DD/MM/YYYY').format('YYYY-MM-DD HH:mm:ss')

        const dataValida = moment(data).isSameOrAfter(dataCriacao)
        const usuarioValido = atendimento.cliente.length >= 5

        const validacoes = [
            {
                nome: 'data',
                valido: dataValida,
                mensagem: 'Data deve ser maior ou igual a data atual'
            },
            {
                nome: 'cliente',
                valido: usuarioValido,
                mensagem: 'Usuario deve ter pelo menos cinco caracteres'
            }
        ]

        const erros = validacoes.filter(campo => !campo.valido)
        const existemErros = erros.length

        if(existemErros) {
            resp.status(400).json(erros)
        } else {
            const atendimentoDatado = {...atendimento, dataCriacao, data}
            const sql = 'INSERT INTO atendimentos SET ?'

            conexao.query(sql, atendimentoDatado, (erro, resultados) => {
                if(erro) {
                    resp.status(400).json(erro)
                } else {
                    resp.status(201).json(resultados)
                }
            })
        }
    }
4 respostas
solução!

Olá Edilson, tudo bem com você?

Para modificarmos a resposta que será enviada para o cliente, na hora de alterar só precisamos modificar um pouco o nosso res.json() quando não há erros

Ao invés de enviar a resposta do Mysql, como está sendo feito em nosso método altera:

resp.status(200).json(resultados)

Vamos trocar para:

res.status(200).json({...valores, id})

Dessa maneira estamos enviando os valores que foram alterados e ainda o iddo usuário alterado :)

Em relação ao delete, vamos fazer a mesma coisa:

if(erro){
    res.status(400).json(erro)
} else {
    res.status(200).json({
        status: "Usuário Removido com sucesso",
        id
)          

Então veja que eu estou enviando a mensagem dentro de um atributo chamado status e passo o id do usuário que foi deletado :)

Era isso que você queria? Qualquer coisa estou a disposição!

Abraços e Bons Estudos :)

Opa Geovani, então com o altera e adiciona deu certo mas com o remove não aparece nada.

    remove(id, resp) {
        const sql = `DELETE FROM atendimentos WHERE id = ${id}`

        conexao.query(sql, (erro) => {
            if(erro) {
                resp.status(400).json(erro)
            } else {
                resp.status(204).json({
                    status: "Atendimento removido com sucesso",
                    id
                })
            }
        })
    }

Então Edilson,

A questão é que você colocou:

resp.status(204).json({

O status 204 no mundo HTTP significa "Sem Conteúdo" (No-Content), ou seja, a solicitação do usuário foi realizada com sucesso pelo servidor, entretanto, não haverá resposta a ser devolvida no corpo :)

Para corrigir isso basta trocar para o status 200, que ai significa que a solicitação foi realizada com sucesso, e que pode ter dados a ser devolvidos pelo servidor :)

Abraços e Bons Estudos!

Opa Geovani, obrigado. Sua solução funcionou.