backendapimanager.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef BACKENDAPIMANAGER_H
  2. #define BACKENDAPIMANAGER_H
  3. #include <QJsonArray>
  4. #include <QJsonDocument>
  5. #include <QJsonObject>
  6. #include <QNetworkAccessManager>
  7. #include <QNetworkReply>
  8. #include <QNetworkRequest>
  9. #include <QObject>
  10. class backendAPIManager : public QObject {
  11. Q_OBJECT
  12. public:
  13. static void initialize(const QString &backendUrl);
  14. static void cleanup();
  15. static void setAuthToken(const QString &token);
  16. static bool uploadBlastProjectFull(const QJsonObject &projectData);
  17. static bool uploadBlastProject(const QJsonObject &projectData);
  18. static bool uploadBlastProjectDets(const QJsonObject &detsData);
  19. static bool uploadBlastEquipments(const QJsonObject &regDetsData);
  20. static QJsonArray getSysUsers();
  21. static QJsonArray getHAddresses();
  22. static QJsonArray getDailyBlastedCount(int days);
  23. static QJsonObject getBlastRecords(int page, int pageSize, QJsonObject params);
  24. signals:
  25. void uploadFinished(const QJsonDocument &response);
  26. void uploadError(const QString &errorString);
  27. private:
  28. explicit backendAPIManager(const QString &backendUrl, QObject *parent = nullptr);
  29. ~backendAPIManager();
  30. // HTTP methods
  31. QNetworkReply *sendRequest(const QString &endpoint, const QJsonObject &data, const QString &method = "POST");
  32. void setupRequest(QNetworkRequest &request, const QString &endpoint);
  33. void handleNetworkReply(QNetworkReply *reply);
  34. static backendAPIManager *s_instance;
  35. QString backendUrl;
  36. QNetworkAccessManager *networkManager;
  37. bool requestSuccess;
  38. QString authToken;
  39. private slots:
  40. void handleReponseOKFinished(const QJsonDocument &response, const QUrl &url);
  41. void handleResponseError(const QString &error);
  42. };
  43. #endif // BACKENDAPIMANAGER_H