2
respostas

Problema com validacao de cliente e data

Eu vi um topico que foi postado a umas 4 semanas aqui, chamado "Validação no FrontEnd" e estou com um problema parecido.

Quando voce manda um request pelo Postman, os mesmos dados as vezes validam e as vezes nao validam. Por exemplo, se eu mando um request com

cliente: ju e data: 19/02/2021,

Apos clicar 4 vezes no send do Postman, as 3 primeiras vezes ele mostra os erros de "cliente" e de "data". Na ultima vez, entretanto, ele so mostra o de "data".

Considerando a data de hoje (14/02/2021) eu nao entendo pq a "data" ta dando problema, e arbitrariamente no quarto send do postman o "cliente" deixa de dar problema.

const moment = require("moment");
const conexao = require("../infraestrutura/conexao.js");

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.length >= 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 5 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);
                }
            })
        }        
    }
}

module.exports = new Atendimento;
2 respostas

Ok, so pra deixar registrado caso alguem mais encontre esse problema:

A formatacao do moment nao deve ser assim:

"YYYY-MM-DD HH:MM:SS"

Deve ser assim:

"YYYY-MM-DD HH:mm:ss"

Isso resolveu o meu problema! Pode fechar o topico

Bom dia Xadai, tudo tranquilo?

Muito obrigado por compartilhar a solução que você encontrou! É sempre interessante manter respostas e soluções aqui no fórum.

Continue assim e bons estudos!