machine.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. #include "machine.h"
  2. #include <QJsonDocument>
  3. #include <QJsonObject>
  4. #include <QJsonValue>
  5. #include <QNetworkAccessManager>
  6. #include <QUrlQuery>
  7. #include <basemainTr.h>
  8. #include <optional>
  9. #include "appevent.h"
  10. namespace TC {
  11. void critical(const QString &text, const QString &title = Tr::tr("Error"));
  12. std::optional<QJsonValue> sendRequest(QNetworkAccessManager::Operation op,
  13. const QString &url,
  14. const QByteArray &postData = QByteArray());
  15. static const QLatin1String scCode("code");
  16. static const QLatin1String scMessage("message");
  17. static const QLatin1String scData("data");
  18. MachineList::MachineList()
  19. : url("/api/v1/machine/list")
  20. {}
  21. MachineList::MachineList(const QString &machineCode)
  22. {
  23. QUrl qurl("/api/v1/machine/list");
  24. QUrlQuery query;
  25. query.addQueryItem("machine_code", machineCode);
  26. qurl.setQuery(query);
  27. url = qurl.toString();
  28. }
  29. std::optional<QJsonValue> MachineList::get()
  30. {
  31. return sendRequest(QNetworkAccessManager::GetOperation, url);
  32. // const QJsonObject &object = data.value().toObject();
  33. // Login::Data ret;
  34. // if (object[scJwtToken].isObject()) {
  35. // const QJsonObject &jwtObject = object[scJwtToken].toObject();
  36. // ret.accessToken = jwtObject[scAccessToken].toString();
  37. // ret.accessExpire = jwtObject[scAccessExpire].toVariant().toLongLong();
  38. // ret.refreshAfter = jwtObject[scRefreshAfter].toVariant().toLongLong();
  39. // }
  40. // qDebug() << object;
  41. // //设置 token 到全局变量
  42. // if (ret.accessExpire > AppEvent::time()) {
  43. // AppEvent::instance()->setJwtToken(ret.accessToken);
  44. // AppEvent::instance()->setRefreshTime(ret.refreshAfter);
  45. // return true;
  46. // }
  47. // return false;
  48. }
  49. MachineInsert::MachineInsert()
  50. : url("/api/v1/machine/addone")
  51. {
  52. }
  53. MachineInsert::MachineInsert(const QString &machineCode)
  54. : url("/api/v1/machine/addone")
  55. {
  56. QJsonObject json;
  57. json["machine_code"] = machineCode;
  58. json["computer_brand"] = "";
  59. QJsonDocument jsonData(json);
  60. sendData = jsonData.toJson();
  61. }
  62. std::optional<QJsonValue> MachineInsert::post()
  63. {
  64. std::optional<QJsonValue> responseData = sendRequest(QNetworkAccessManager::PostOperation,
  65. url,
  66. sendData);
  67. if (!responseData.has_value()) {
  68. return false;
  69. }
  70. QJsonValue data;
  71. const QJsonObject object = responseData.value().toObject();
  72. if (object.contains(scCode)) {
  73. int code = object.value(scCode).toInt();
  74. if (code != 200) {
  75. // 获取当前活动窗口
  76. critical(object[scMessage].toString());
  77. return false;
  78. }
  79. }
  80. return true;
  81. // if (object.contains(scMessage)) {
  82. // const QString &message = object.value(scMessage).toString();
  83. // // Core::MessageManager::writeFlashing(message);
  84. // }
  85. // if (object.contains(scData)) {
  86. // data = object.value(scData);
  87. // }
  88. }
  89. MachineUpdate::MachineUpdate()
  90. : url("/api/v1/machine/update")
  91. {}
  92. MachineUpdate::MachineUpdate(const QString &uuid, const QString &userUuid, const QJsonObject &old)
  93. : url("/api/v1/machine/update")
  94. {
  95. QJsonObject json = old;
  96. json["uuid"] = uuid;
  97. json["user_uuid"] = userUuid;
  98. QJsonDocument jsonData(json);
  99. sendData = jsonData.toJson();
  100. }
  101. std::optional<QJsonValue> MachineUpdate::post()
  102. {
  103. std::optional<QJsonValue> responseData = sendRequest(QNetworkAccessManager::PostOperation,
  104. url,
  105. sendData);
  106. if (!responseData.has_value()) {
  107. return false;
  108. }
  109. QJsonValue data;
  110. const QJsonObject object = responseData.value().toObject();
  111. if (object.contains(scCode)) {
  112. int code = object.value(scCode).toInt();
  113. if (code != 200) {
  114. // 获取当前活动窗口
  115. critical(object[scMessage].toString());
  116. return false;
  117. }
  118. }
  119. return true;
  120. }
  121. } // namespace TC