hostsapi.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "hostsapi.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. #include "qjsonarray.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. HostsApi::HostsApi(QObject *parent)
  21. : QObject{parent}
  22. , url("/api/v1/sys/web_game/no_list")
  23. {}
  24. QJsonArray HostsApi::get()
  25. {
  26. const auto responseData = sendRequest(QNetworkAccessManager::GetOperation, url);
  27. if (!responseData.has_value()) {
  28. return QJsonArray();
  29. }
  30. const QJsonObject &object = responseData.value().toObject();
  31. if (object[scData].isObject()) {
  32. const QJsonObject &data = object[scData].toObject();
  33. if (data.contains(scList)) {
  34. return data[scList].toArray(QJsonArray());
  35. }
  36. }
  37. return QJsonArray();
  38. }
  39. } // namespace TC