File indexing completed on 2024-05-12 04:42:41

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KPUBLICTRANSPORT_OPENTRIPPLANNERRESTBACKEND_H
0008 #define KPUBLICTRANSPORT_OPENTRIPPLANNERRESTBACKEND_H
0009 
0010 #include "abstractbackend.h"
0011 
0012 namespace KPublicTransport {
0013 
0014 /** Backend for OpenTripPlanner backends using the REST API. */
0015 class OpenTripPlannerRestBackend : public AbstractBackend
0016 {
0017     Q_GADGET
0018     Q_PROPERTY(QString endpoint MEMBER m_endpoint)
0019 
0020 public:
0021     OpenTripPlannerRestBackend();
0022     ~OpenTripPlannerRestBackend() override;
0023 
0024     static inline constexpr const char* type() { return "otpRest"; }
0025     Capabilities capabilities() const override;
0026     bool needsLocationQuery(const Location &loc, AbstractBackend::QueryType type) const override;
0027     bool queryJourney(const JourneyRequest &req, JourneyReply *reply, QNetworkAccessManager *nam) const override;
0028     bool queryStopover(const StopoverRequest &req, StopoverReply *reply, QNetworkAccessManager *nam) const override;
0029     bool queryLocation(const LocationRequest &req, LocationReply *reply, QNetworkAccessManager *nam) const override;
0030 
0031 private:
0032     QString locationToQuery(const Location &loc) const;
0033 
0034     QString m_endpoint;
0035 };
0036 
0037 }
0038 
0039 #endif // KPUBLICTRANSPORT_OPENTRIPPLANNERRESTBACKEND_H