diff options
author | Saturneric <[email protected]> | 2021-08-21 16:26:07 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2021-08-21 16:26:07 +0000 |
commit | 516e3286d8373157291c78a499dd7a54c025133e (patch) | |
tree | d6c6b252110339a8be4390136f916b064d5b6740 /src/server/BaseAPI.cpp | |
parent | Fixed. (diff) | |
download | GpgFrontend-516e3286d8373157291c78a499dd7a54c025133e.tar.gz GpgFrontend-516e3286d8373157291c78a499dd7a54c025133e.zip |
Functions addition and improvement;
Design and adjustment of function architecture related to server access;
Add a new module (advance);
Diffstat (limited to 'src/server/BaseAPI.cpp')
-rw-r--r-- | src/server/BaseAPI.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/server/BaseAPI.cpp b/src/server/BaseAPI.cpp new file mode 100644 index 00000000..be388df9 --- /dev/null +++ b/src/server/BaseAPI.cpp @@ -0,0 +1,70 @@ +/** + * This file is part of GPGFrontend. + * + * GPGFrontend is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Foobar is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see <https://www.gnu.org/licenses/>. + * + * The initial version of the source code is inherited from gpg4usb-team. + * Their source code version also complies with GNU General Public License. + * + * The source code version of this software was modified and released + * by Saturneric<[email protected]> starting on May 12, 2021. + * + */ + +#include "server/BaseAPI.h" +#include "rapidjson/writer.h" + +BaseAPI::BaseAPI(ComUtils::ServiceType serviceType) : utils(new ComUtils(nullptr)), + reqUrl(utils->getUrl(serviceType)), request(reqUrl) { + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); +} + +BaseAPI::~BaseAPI() { + utils->deleteLater(); +} + +QNetworkReply *BaseAPI::send_json_data() { + rapidjson::StringBuffer sb; + rapidjson::Writer<rapidjson::StringBuffer> writer(sb); + document.Accept(writer); + + QByteArray postData(sb.GetString()); + qDebug() << "postData" << QString::fromUtf8(postData); + + auto reply = utils->getNetworkManager().post(request, postData); + + while (reply->isRunning()) QApplication::processEvents(); + + QByteArray replyData = reply->readAll().constData(); + if (utils->checkServerReply(replyData)) { + good = true, deal_reply(); + } + + return reply; +} + +void BaseAPI::start() { + construct_json(); + send_json_data()->deleteLater(); +} + +void BaseAPI::refresh() { + document.Clear(); + utils->clear(); + good = false; +} + +bool BaseAPI::result() const { + return good; +} |