2
respostas

Não está retornando o id na hor que cadastro um atendimento

const axios = require('axios') const moment = require('moment') const conexao = require('../infraestrutura/conexao')

class Atendimento { adiciona(atendimento, res){ const dataCriacao = moment().format('YYYY-MM-DD HH:MM:SS') const data = moment(atendimento.data, 'YYYY-MM-DD')

    const dataEValida = moment(data).isSameOrAfter(dataCriacao)
    const clienteEValido = atendimento.cliente.length >= 5 

    const validacoes = [
        {
            nome: 'data',
            valido: dataEValida,
            mensagem: 'Data deve ser maior ou igual a data atual'

        },
        {
            nome: 'cliente',
            valido: clienteEValido,
            mensagem: 'Cliente deve ter pelo menos cinco caracteres'
        }
    ]

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

    if(existemErros){
        res.status(400).json(erros)
    }else{
        const atendimentoDatado = {...atendimento,
             dataCriacao,
             }

        const sql = 'INSERT INTO Atendimentos SET ?'

        conexao.query(sql, atendimentoDatado, (erro, resultados) => {
            if(erro){
                res.status(400).json(erro)
            }else {
                res.status(201).json(atendimento)
            }
        })
    } 
}

lista(res){
    const sql = 'SELECT * FROM Atendimentos'

    conexao.query(sql, (erro, resultados) => {
        if(erro){
            res.status(400).json(erro)
        }else{
            res.status(200).json(resultados)
        }
    })
}

buscaPorId(id, res){
    const sql = `SELECT * FROM Atendimentos WHERE id = ${id}`

    conexao.query(sql, async (erro, resultados) => {
        const atendimento = resultados[0]
        const cpf = atendimento.cliente
        if(erro){ 
            res.status(400).json(erro)
        }else {
            const { data } = await axios.get (`http://localhost:8082/${cpf}`)

            atendimento.cliente = data

            res.status(200).json(atendimento)
        } 
    })


}

altera(id, valores, res){
    const sql = 'UPDATE Atendimentos SET ? WHERE id=?'

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

deleta(id, res){
    const sql = 'DELETE FROM Atendimentos WHERE id = ?'

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

} module.exports = new Atendimento

2 respostas

O meu também não mostra o id, já pesquisei, fiz diversas modificações mas não sei pq não mostra :(

Consegui, após observar o código da aula posterior, percebi que na parte da busca do "adiciona" é necessário criar uma const id, definir o valor da id e depois criar um objeto dentro do json com o atendimento e o id. Segue como o código deve ficar modificado:

                if (erro)
                {
                    res.status(400).json (erro);
                }
                else
                {
                    const id = resultados.insertId
                    res.status(201).json({...atendimento, id});

                }

Logo, o código completo do seria:

    adiciona (atendimento, res)
    {
        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 dataEhValida = moment (data).isSameOrAfter (dataCriacao) 
        const clienteEhValido = atendimento.cliente.length >= 5 

        const validações = 
        [
            {
                nome: 'data',
                valido: dataEhValida,
                mensagem: 'Data deve ser maior ou igual a data atual'
            },
            {
                nome: 'cliente',
                valido: clienteEhValido,
                mensagem: 'Cliente deve ter pelo menos 5 caracteres'
            }
        ]

        const erros = validações.filter(campo => !campo.valido) 
        const existemErros = erros.length
        if(existemErros)
        {
            res.status(400).json(erros)
        }
        else
        {
            const atendimentoDatado = {...atendimento, dataCriacao, data} 

            const sql = 'INSERT INTO Atendimentos SET ?' 

            conexao.query (sql, atendimentoDatado, (erro, resultados) =>
            {
                if (erro)
                {
                    res.status(400).json (erro);
                }
                else
                {
                    const id = resultados.insertId
                    res.status(201).json({...atendimento, id}); 

                }
            })
        }

    }