backendapimanager.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 getPcs();
  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,
  30. const QString &method = "POST");
  31. void setupRequest(QNetworkRequest &request, const QString &endpoint);
  32. void handleNetworkReply(QNetworkReply *reply);
  33. static backendAPIManager *s_instance;
  34. QString backendUrl;
  35. QNetworkAccessManager *networkManager;
  36. bool requestSuccess;
  37. QString authToken;
  38. private slots:
  39. void handleUploadFinished(const QJsonDocument &response, const QUrl &url);
  40. void handleUploadError(const QString &error);
  41. };
  42. #endif // BACKENDAPIMANAGER_H