2
respostas

erro com get id

simplesmente não aparece nada, não da erro e nem nada model/atendimento:

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, 'DD/MM/YYYY').format('YYYY-MM-DD HH:mm:ss')

        const validaData = moment(data).isSameOrAfter(dataCriacao)
        const validaCliente = atendimento.cliente.length >= 4

        const validacoes = [
            {
                nome: 'data',
                valido: validaData,
                mensagem: 'Data deve ser maior ou igual a data atual'
            },
            {
                nome: 'cliente',
                valido: validaCliente,
                mensagem: 'O nome deve conter ao menos 4 caracteres'
            }
        ]

        const erros = validacoes.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 {
                    res.status(201).json(resultados)
                }
            })
        }
    }

    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, (erro, resultados) => {
            const atendimento = resultados[0];
            if (erro) {
                res.status(400).json(erro)
            }
            else {
                res.status(200).json(atendimento)
            }
        })
    }
}

module.exports = new Atendimento

controller/atendimento

const Atendimento = require('../models/atendimento')

module.exports = app => {
    app.get('/atendimentos', (req, res) => {
        Atendimento.lista(res);
    });

    app.get('/atendimentos/:id', (req, res) => {
        const id = parseInt(req.params.id)
        Atendimento.buscaPorId(id, res)
    });

    app.post('/atendimentos', (req, res) => {
        const atendimento = req.body
        Atendimento.adiciona(atendimento, res)
    })
}

github: https://github.com/jianLicio/alura-nodejs

2 respostas

Olá, Jian! Tudo bem?

Olhei seu código do ID e não encontrei nada de errado. Você poderia mandar um print da tela do seu Postman, na página dessa requisição? Principalmente da URL, que deve ter o final /atendimentos/1, por exemplo, e ser do tipo GET.

Além disso, sugiro que você coloque um console.log(id) no buscaPorId, para confirmar que ele está chegando corretamente. Qualquer coisa avise, ok?

Espero ter ajudado!

já descobri, é pq tava colocando o id 1, mas eu não tenho o id 1, pois deletei -_- a questão é: como fazer para retornar um erro nesses casos?