| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #include "gradesapi.h"
- #include <QJsonDocument>
- #include <QJsonObject>
- #include <QJsonValue>
- #include <optional>
- #include "appevent.h"
- #include "tapi.h"
- #include <QDebug>
- namespace TC {
- extern std::optional<QJsonValue> 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<QJsonValue> 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
|