#include "gradesapi.h" #include #include #include #include #include "appevent.h" #include "tapi.h" #include namespace TC { extern std::optional sendRequest(QNetworkAccessManager::Operation op, const QString &url, const QByteArray &postData); GradesUpdate::GradesUpdate() : QObject() , url("/score-api/grades/update") {} GradesUpdate::GradesUpdate(const QString &answerFileName, const QString &checkinNumber, int endTime, const QString &examRoom, const QString &examSessions, const QString &examText, const QString &examineNumber, const QString &groupName, const QString &id, const QString &name, int onlineStatus, const QString &schoolAddress, const QString &schoolName, int sex, int startTime, int status, const QString &swId) : QObject() , url("/score-api/grades/update") { QJsonObject json; json["answerFileName"] = answerFileName; json["checkinNumber"] = checkinNumber; json["endTime"] = endTime; json["examRoom"] = examRoom; json["examSessions"] = examSessions; json["examText"] = examText; json["examineNumber"] = examineNumber; json["groupName"] = groupName; json["id"] = id; json["name"] = name; json["onlineStatus"] = onlineStatus; json["schoolAddress"] = schoolAddress; json["schoolName"] = schoolName; json["sex"] = sex; json["startTime"] = startTime; json["status"] = status; json["swId"] = swId; QJsonDocument jsonData(json); postData = jsonData.toJson(); } GradesUpdate::Data GradesUpdate::post() { GradesUpdate::Data ret; ret.success = false; ret.message = "Failed to update grades"; std::optional data = sendRequest(QNetworkAccessManager::PostOperation, url, postData); if (!data.has_value()) { return ret; } const QJsonObject &object = data.value().toObject(); qDebug() << object; ret.success = object["status"].toBool(); ret.message = object["message"].toString(); // 如果成功,触发考试更新事件 if (ret.success) { AppEvent::instance()->examsTestUpdate(); } return ret; } } // namespace TC