processapi.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "processapi.h"
  2. #include "qjsonarray.h"
  3. #include "student.h"
  4. #include <QJsonDocument>
  5. #include <QJsonObject>
  6. #include <QJsonValue>
  7. #include <QNetworkAccessManager>
  8. #include <QUrlQuery>
  9. #include <optional>
  10. #include <basemainTr.h>
  11. namespace TC {
  12. void critical(const QString &text, const QString &title = Tr::tr("Error"));
  13. std::optional<QJsonValue> sendRequest(QNetworkAccessManager::Operation op,
  14. const QString &url,
  15. const QByteArray &postData = QByteArray());
  16. static const QLatin1String scCode("code");
  17. static const QLatin1String scMessage("message");
  18. static const QLatin1String scData("data");
  19. static const QLatin1String scList("list");
  20. ProcessApi::ProcessApi()
  21. : url("/api/v1/user_pid/addall")
  22. {}
  23. ProcessApi::ProcessApi(const QJsonArray &array)
  24. : url("/api/v1/user_pid/addall")
  25. {
  26. // QJsonDocument jsonData(array);
  27. // sendData = jsonData.toJson();
  28. QJsonObject json;
  29. json["pids"] = array;
  30. QJsonDocument jsonData(json);
  31. sendData = jsonData.toJson();
  32. }
  33. bool ProcessApi::post()
  34. {
  35. // qDebug().noquote() << sendData;
  36. std::optional<QJsonValue> responseData = sendRequest(QNetworkAccessManager::PostOperation,
  37. url,
  38. sendData);
  39. if (!responseData.has_value()) {
  40. return false;
  41. }
  42. QJsonValue data;
  43. const QJsonObject object = responseData.value().toObject();
  44. if (object.contains(scCode)) {
  45. int code = object.value(scCode).toInt();
  46. if (code == 200) {
  47. return true;
  48. }
  49. }
  50. if (object.contains(scMessage)) {
  51. const QString &message = object.value(scMessage).toString();
  52. // Core::MessageManager::writeFlashing(message);
  53. }
  54. if (object.contains(scData)) {
  55. data = object.value(scData);
  56. }
  57. return false;
  58. }
  59. ProcessNameApi::ProcessNameApi()
  60. : url("/api/v1/process/listwithmachine")
  61. {}
  62. QJsonArray ProcessNameApi::get()
  63. {
  64. std::optional<QJsonValue> responseData = sendRequest(QNetworkAccessManager::GetOperation,
  65. url,
  66. sendData);
  67. if (!responseData.has_value()) {
  68. return QJsonArray();
  69. }
  70. QJsonValue data;
  71. const QJsonObject object = responseData.value().toObject();
  72. if (object.contains(scList)) {
  73. return object.value(scList).toArray();
  74. }
  75. return QJsonArray();
  76. }
  77. } // namespace TC