QAlphaCloud  0.0.1
Qt bindings for Alpha Cloud
apirequest.h
1 /*
2  * SPDX-FileCopyrightText: 2023 Kai Uwe Broulik <ghqalpha@broulik.de>
3  * SPDX-License-Identifier: LGPL-2.1-or-later
4  */
5 
6 #pragma once
7 
8 #include <QDate>
9 #include <QJsonValue>
10 #include <QObject>
11 #include <QString>
12 #include <QUrlQuery>
13 
14 #include "qalphacloud.h"
15 
16 #include <memory>
17 
18 namespace QAlphaCloud
19 {
20 
21 class ApiRequestPrivate;
22 class Connector;
23 
34 class Q_DECL_EXPORT ApiRequest : public QObject
35 {
36  Q_OBJECT
37 
38 public:
42  struct EndPoint {
43  static constexpr QLatin1String EssList{"getEssList"};
44  static constexpr QLatin1String LastPowerData{"getLastPowerData"};
45  static constexpr QLatin1String OneDayPowerBySn{"getOneDayPowerBySn"};
46  static constexpr QLatin1String OneDateEnergyBySn{"getOneDateEnergyBySn"};
47  };
48 
54  explicit ApiRequest(Connector *connector, QObject *parent = nullptr);
61  ApiRequest(Connector *connector, const QString &endPoint, QObject *parent = nullptr);
65  ~ApiRequest() override;
66 
70  QString endPoint() const;
77  void setEndPoint(const QString &endPoint);
78 
82  QString sysSn() const;
88  void setSysSn(const QString &sysSn);
89 
93  QDate queryDate() const;
99  void setQueryDate(const QDate &date);
100 
104  QUrlQuery query() const;
111  void setQuery(const QUrlQuery &query);
112 
116  bool autoDelete() const;
122  void setAutoDelete(bool autoDelete);
123 
127  QAlphaCloud::ErrorCode error() const;
133  QString errorString() const;
134 
141  QJsonValue data() const;
142 
148  Q_INVOKABLE bool send();
149 
153  Q_INVOKABLE void abort();
154 
155 Q_SIGNALS:
161  void finished();
162 
168  void result();
178 
179  // TODO void aborted(); ?
180 
181 private:
182  std::unique_ptr<ApiRequestPrivate> const d;
183 };
184 
185 } // namespace QAlphaCloud
API request job.
Definition: apirequest.h:35
void finished()
Emitted when the request finished.
void errorOccurred()
Emitted when an error occurred.
void result()
Emitted when an API result received.
~ApiRequest() override
Destroys the API request.
API Connection.
Definition: connector.h:39
Live Power Data.
Definition: lastpowerdata.h:30
Utility namespace.
Definition: apirequest.cpp:24
ErrorCode
Error codes.
Definition: qalphacloud.h:45
The API endpoints.
Definition: apirequest.h:42