#include "processapi.h" #include "qjsonarray.h" #include "student.h" #include #include #include #include #include #include #include namespace TC { void critical(const QString &text, const QString &title = Tr::tr("Error")); std::optional sendRequest(QNetworkAccessManager::Operation op, const QString &url, const QByteArray &postData = QByteArray()); std::optional uploaderRequest(const QString &url, const QStringList &fileList); static const QLatin1String scCode("code"); static const QLatin1String scMessage("message"); static const QLatin1String scData("data"); static const QLatin1String scList("list"); ProcessApi::ProcessApi() : url("/api/v1/user_pid/addall") {} ProcessApi::ProcessApi(const QJsonArray &array) : url("/api/v1/user_pid/addall") { // QJsonDocument jsonData(array); // sendData = jsonData.toJson(); QJsonObject json; json["pids"] = array; QJsonDocument jsonData(json); sendData = jsonData.toJson(); } bool ProcessApi::post() { // qDebug().noquote() << sendData; std::optional responseData = sendRequest(QNetworkAccessManager::PostOperation, url, sendData); if (!responseData.has_value()) { return false; } QJsonValue data; const QJsonObject object = responseData.value().toObject(); if (object.contains(scCode)) { int code = object.value(scCode).toInt(); if (code == 200) { return true; } } if (object.contains(scMessage)) { const QString &message = object.value(scMessage).toString(); // Core::MessageManager::writeFlashing(message); } if (object.contains(scData)) { data = object.value(scData); } return false; } ProcessNameApi::ProcessNameApi() : url("/api/v1/process/listwithmachine") {} QJsonArray ProcessNameApi::get() { std::optional responseData = sendRequest(QNetworkAccessManager::GetOperation, url, sendData); if (!responseData.has_value()) { return QJsonArray(); } QJsonValue data; const QJsonObject object = responseData.value().toObject(); if (object.contains(scList)) { return object.value(scList).toArray(); } return QJsonArray(); } ProcessImageApi::ProcessImageApi() : url("/api/v1/student_game_pic/single_up") {} bool ProcessImageApi::post(const QStringList &fileList) { std::optional responseData = uploaderRequest(url, fileList); if (!responseData.has_value()) { return false; } QJsonValue data; const QJsonObject object = responseData.value().toObject(); if (object.contains(scCode)) { return object.value(scCode).toInt() == 200; } return false; } } // namespace TC