HashLoad / jhonson

Middleware for parse JSON in HORSE
MIT License
106 stars 26 forks source link

Parser #5

Closed giulianon closed 2 years ago

giulianon commented 4 years ago

Conforme postei no grupo do telegram da hasload, o Jhonson faz o parser mas não valida o json. Para validar faltaria chamar o LJSON.toJSON e caso falhe já devolveria um status 400 automaticamente. Enviei um vídeo exemplificando para o Vinicius.

viniciussanchez commented 4 years ago

@giulianon não quer fazer a implementação e enviar o PR?

giulianon commented 4 years ago

Fiz o ajuste.

Segue anexo.

jhonson-master.zip

CarlosHe commented 4 years ago

Olhei o arquivo, acho que vou ter algumas observações para fazer! Mais tarde vejo com mais calma, vou analisar melhor!

giulianon commented 4 years ago

Tranquilo Carlos.

viniciussanchez commented 3 years ago

@CarlosHe qual seria as observações para gente matar essa issue tambem?

viniciussanchez commented 3 years ago

@giulianon basicamente essa aqui foram as suas mudanças, correto?

  if (LWebRequest.MethodType in [mtPost, mtPut]) and (LWebRequest.ContentType = 'application/json') then
  begin
    LJSON := TJSONObject.ParseJSONValue(Req.Body);
    try
      LJSON.ToJSON;
      THorseHackRequest(Req).SetBody(LJSON);
    except
      try
        LParseError := TJSONObject.Create;
        LParseError.AddPair('error', 'Parse json error');
        LParseError.AddPair('description', 'Invalid json');
        Res.Send(LParseError.ToJSON).Status(THTTPStatus.BadRequest);
      finally
        LParseError.Free;
      end;
      raise EHorseCallbackInterrupted.Create;
    end;
  end;