Q_LOGGING_CATEGORY(lcMkColJob, "nextcloud.sync.networkjob.mkcol", QtInfoMsg)
Q_LOGGING_CATEGORY(lcProppatchJob, "nextcloud.sync.networkjob.proppatch", QtInfoMsg)
Q_LOGGING_CATEGORY(lcJsonApiJob, "nextcloud.sync.networkjob.jsonapi", QtInfoMsg)
+Q_LOGGING_CATEGORY(lcSimpleApiJob, "nextcloud.sync.networkjob.simpleapi", QtInfoMsg)
Q_LOGGING_CATEGORY(lcDetermineAuthTypeJob, "nextcloud.sync.networkjob.determineauthtype", QtInfoMsg)
Q_LOGGING_CATEGORY(lcSimpleFileJob, "nextcloud.sync.networkjob.simplefilejob", QtInfoMsg)
const int notModifiedStatusCode = 304;
job->start();
}
+SimpleApiJob::SimpleApiJob(const AccountPtr &account, const QString &path, QObject *parent)
+ : AbstractNetworkJob(account, path, parent)
+{
+}
+
+void SimpleApiJob::setBody(const QByteArray &body)
+{
+ _body = body;
+ qCDebug(lcSimpleApiJob) << "Set body for request:" << _body;
+}
+
+
+void SimpleApiJob::setVerb(Verb value)
+{
+ _verb = value;
+}
+
+
+QByteArray SimpleApiJob::verbToString() const
+{
+ switch (_verb) {
+ case Verb::Get:
+ return "GET";
+ case Verb::Post:
+ return "POST";
+ case Verb::Put:
+ return "PUT";
+ case Verb::Delete:
+ return "DELETE";
+ }
+ return "GET";
+}
+
+void SimpleApiJob::start()
+{
+ qCDebug(lcSimpleApiJob) << "send: " << path() << _body;
+
+ _request.setRawHeader("OCS-APIREQUEST", "true");
+ const auto url = Utility::concatUrlPath(account()->url(), path());
+ const auto httpVerb = verbToString();
+ if (!_body.isEmpty()) {
+ sendRequest(httpVerb, url, _request, _body);
+ } else {
+ sendRequest(httpVerb, url, _request);
+ }
+ AbstractNetworkJob::start();
+}
+
+bool SimpleApiJob::finished()
+{
+ const auto httpStatusCode = reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+ qCDebug(lcSimpleApiJob) << "result: " << path() << errorString() << httpStatusCode;
+ emit resultReceived(httpStatusCode);
+ return true;
+}
+
} // namespace OCC
[[nodiscard]] QByteArray verbToString() const;
};
+class OWNCLOUDSYNC_EXPORT SimpleApiJob : public AbstractNetworkJob
+{
+ Q_OBJECT
+public:
+ enum class Verb {
+ Get,
+ Post,
+ Put,
+ Delete,
+ };
+
+ explicit SimpleApiJob(const AccountPtr &account, const QString &path, QObject *parent = nullptr);
+
+ void setBody(const QByteArray &body);
+
+ void setVerb(Verb value);
+
+public slots:
+ void start() override;
+
+Q_SIGNALS:
+
+ void resultReceived(int statusCode);
+
+protected:
+ bool finished() override;
+
+private:
+ QByteArray _body;
+ QNetworkRequest _request;
+
+ Verb _verb = Verb::Get;
+
+ [[nodiscard]] QByteArray verbToString() const;
+};
+
/**
* @brief Checks with auth type to use for a server
* @ingroup libsync