processapi.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "processapi.h"
  2. #include "student.h"
  3. #include <QJsonDocument>
  4. #include <QJsonObject>
  5. #include <QJsonValue>
  6. #include <QNetworkAccessManager>
  7. #include <QUrlQuery>
  8. #include <optional>
  9. #include <basemainTr.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. ProcessApi::ProcessApi()
  19. : url("/api/v1/user_pid/addall")
  20. {}
  21. ProcessApi::ProcessApi(const QJsonArray &array)
  22. : url("/api/v1/user_pid/addall")
  23. {
  24. // QJsonDocument jsonData(array);
  25. // sendData = jsonData.toJson();
  26. QJsonObject json;
  27. json["pids"] = array;
  28. QJsonDocument jsonData(json);
  29. sendData = jsonData.toJson();
  30. }
  31. bool ProcessApi::post()
  32. {
  33. // qDebug().noquote() << sendData;
  34. std::optional<QJsonValue> responseData = sendRequest(QNetworkAccessManager::PostOperation,
  35. url,
  36. sendData);
  37. if (!responseData.has_value()) {
  38. return false;
  39. }
  40. QJsonValue data;
  41. const QJsonObject object = responseData.value().toObject();
  42. if (object.contains(scCode)) {
  43. int code = object.value(scCode).toInt();
  44. if (code == 200) {
  45. return true;
  46. }
  47. }
  48. if (object.contains(scMessage)) {
  49. const QString &message = object.value(scMessage).toString();
  50. // Core::MessageManager::writeFlashing(message);
  51. }
  52. if (object.contains(scData)) {
  53. data = object.value(scData);
  54. }
  55. return false;
  56. }
  57. } // namespace TC