controllers/atendimentos.js
const Atendimento = require('../models/atendimentos')
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)
})
app.patch('/atendimentos/:id', (req, res) => {
const id = parseInt(req.params.id)
const valores = req.body
Atendimento.altera(id, valores, res)
})
app.delete('/atendimentos/:id', (req, res) => {
const id = parseInt(req.params.id)
Atendimento.deleta(id, res)
})
}
models/atendimentos.js
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 dataEhValida = moment(data).isSameOrAfter(dataCriacao)
const clienteEhValido = atendimento.cliente.lenght >= 5
const validacoes = [
{
nome: 'data',
valido: dataEhValida,
mensagem: 'Data deve ser maior ou igual a data atual'
},
{
nome: 'cliente',
valido: clienteEhValido,
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, 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({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, (erro, resultados) => {
const atendimento = resultados[0]
if(erro) {
res.status(400).json(erro)
} else {
res.status(200).json(atendimento)
}
})
}
altera(id, valores, res) {
if(valores.data) {
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) {
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
DADOS ENVIANDO DO POSTAMAN E ERRO: (https://cdn1.gnarususercontent.com.br/1/872382/d72b799d-d383-4c6c-a660-a0c8d9bcd6ed.png)
Parece que estou tendo erros de validação.