backendapimanager.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. signals:
  23. void uploadFinished(const QJsonDocument &response);
  24. void uploadError(const QString &errorString);
  25. private:
  26. explicit backendAPIManager(const QString &backendUrl, QObject *parent = nullptr);
  27. ~backendAPIManager();
  28. // HTTP methods
  29. QNetworkReply *sendRequest(const QString &endpoint, const QJsonObject &data, const QString &method = "POST");
  30. void setupRequest(QNetworkRequest &request, const QString &endpoint);
  31. void handleNetworkReply(QNetworkReply *reply);
  32. static backendAPIManager *s_instance;
  33. QString backendUrl;
  34. QNetworkAccessManager *networkManager;
  35. bool requestSuccess;
  36. QString authToken;
  37. private slots:
  38. void handleUploadFinished(const QJsonDocument &response, const QUrl &url);
  39. void handleUploadError(const QString &error);
  40. };
  41. #endif // BACKENDAPIMANAGER_H