Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema validacao cliente (5 char)

Sempre que tento cadastrar um atendimento com a cliente "juliana" (ou qualquer outro nome acima de 5 caracteres), recebo como resposta um erro 400 do Postman.

[
    {
        "nome": "cliente",
        "valido": false,
        "mensagem": "Cliente deve ter pelo menos cinco caracteres"
    }
]

Não tenho problemas com a validação de datas. Já peguei o código do final dessa aula no github mas não consigo achar o problema dessa lógica.


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 à 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, (err, result) =>
        err ? res.status(400).json(err) : res.status(201).json(result)
      )
    }
  }
}

module.exports = new Atendimento()
1 resposta
solução!
const clienteEhValido = atendimento.cliente.lenght >= 5

para

const clienteEhValido = atendimento.cliente.length >= 5