File indexing completed on 2024-05-12 16:16:01
0001 /* 0002 SPDX-FileCopyrightText: 2019-2023 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "grammalecteparser.h" 0008 #include "grammalectegrammarerror.h" 0009 #include "textgrammarcheck_debug.h" 0010 #include <QJsonArray> 0011 #include <QJsonValue> 0012 0013 using namespace TextGrammarCheck; 0014 0015 GrammalecteParser::GrammalecteParser() = default; 0016 0017 GrammalecteParser::~GrammalecteParser() = default; 0018 0019 QVector<GrammarError> GrammalecteParser::parseResult(const QJsonObject &obj) const 0020 { 0021 QVector<GrammarError> infos; 0022 if (!obj.contains(QLatin1String("grammalecte"))) { 0023 qCWarning(TEXTGRAMMARCHECK_LOG) << "Error in json " << obj; 0024 return infos; 0025 } 0026 const QJsonArray array = obj.value(QLatin1String("data")).toArray(); 0027 for (const QJsonValue ¤t : array) { 0028 if (current.type() == QJsonValue::Object) { 0029 // Check lGrammarErrors 0030 const QJsonObject grammaObject = current.toObject(); 0031 const int blockId = grammaObject.value(QStringLiteral("iParagraph")).toInt(); 0032 // qDebug() << " blockId " << blockId; 0033 const QJsonArray grammarErrorArray = grammaObject.value(QLatin1String("lGrammarErrors")).toArray(); 0034 for (const QJsonValue &error : grammarErrorArray) { 0035 // qDebug() << " grammarErrorArray"<<error; 0036 TextGrammarCheck::GrammalecteGrammarError info; 0037 if (error.type() == QJsonValue::Object) { 0038 info.parse(error.toObject(), blockId); 0039 if (info.isValid()) { 0040 infos.append(std::move(info)); 0041 } 0042 } else { 0043 qCWarning(TEXTGRAMMARCHECK_LOG) << "Problem when parsing grammalecte error" << error; 0044 } 0045 } 0046 } else { 0047 qCWarning(TEXTGRAMMARCHECK_LOG) << "Problem when parsing grammalecte result" << current; 0048 } 0049 } 0050 return infos; 0051 }