File indexing completed on 2024-05-12 04:42:38
0001 /* 0002 SPDX-FileCopyrightText: 2024 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #ifndef KPUBLICTRANSPORT_MOTISPARSER_H 0007 #define KPUBLICTRANSPORT_MOTISPARSER_H 0008 0009 #include <QUrl> 0010 0011 class QJsonObject; 0012 0013 namespace KPublicTransport { 0014 0015 class Location; 0016 class Journey; 0017 class Stopover; 0018 0019 /** Response parsing for Motis. */ 0020 class MotisParser 0021 { 0022 public: 0023 explicit MotisParser(QString locIdentifierType); 0024 0025 [[nodiscard]] std::vector<Journey> parseConnections(const QByteArray &data); 0026 [[nodiscard]] std::vector<Stopover> parseEvents(const QByteArray &data); 0027 [[nodiscard]] std::vector<Location> parseStations(const QByteArray &data); 0028 0029 [[nodiscard]] bool hasError() const; 0030 [[nodiscard]] QString errorMessage() const; 0031 0032 private: 0033 [[nodiscard]] Journey parseConnection(const QJsonObject &con) const; 0034 [[nodiscard]] Location parseStation(const QJsonObject &station) const; 0035 [[nodiscard]] QJsonObject parseContent(const QByteArray &data); 0036 0037 QString m_locIdentifierType; 0038 QString m_errorMsg; 0039 }; 0040 0041 } 0042 0043 #endif