Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2022-01-31 13:57:20 +0300
committerHannah von Reth <vonreth@kde.org>2022-02-04 13:53:42 +0300
commitc370712d8245bda4a901f1d9ff8760a9826b4604 (patch)
treef84876a9da1b5a20d101bef3f1e67ff55026ffb8 /src/gui/sharee.cpp
parent322d9d28bb2bbfeeaa84e46c8544e3c845db4356 (diff)
Replace ocsjob with JsonApiJob
Diffstat (limited to 'src/gui/sharee.cpp')
-rw-r--r--src/gui/sharee.cpp144
1 files changed, 75 insertions, 69 deletions
diff --git a/src/gui/sharee.cpp b/src/gui/sharee.cpp
index 9c6db60d1..ca2a328a1 100644
--- a/src/gui/sharee.cpp
+++ b/src/gui/sharee.cpp
@@ -13,7 +13,7 @@
*/
#include "sharee.h"
-#include "ocsshareejob.h"
+#include "networkjobs/jsonjob.h"
#include <QJsonObject>
#include <QJsonDocument>
@@ -71,74 +71,80 @@ void ShareeModel::fetch(const QString &search, const ShareeSet &blacklist)
{
_search = search;
_shareeBlacklist = blacklist;
- OcsShareeJob *job = new OcsShareeJob(_account);
- connect(job, &OcsShareeJob::shareeJobFinished, this, &ShareeModel::shareesFetched);
- connect(job, &OcsJob::ocsError, this, &ShareeModel::displayErrorMessage);
- job->getSharees(_search, _type, 1, 50);
-}
-
-void ShareeModel::shareesFetched(const QJsonDocument &reply)
-{
- auto data = reply.object().value("ocs").toObject().value("data").toObject();
-
- QVector<QSharedPointer<Sharee>> newSharees;
-
- /*
- * Todo properly loop all of this
- */
- auto exact = data.value("exact").toObject();
- {
- const auto &users = exact.value("users").toArray();
- for (const auto &user : users) {
- newSharees.append(parseSharee(user.toObject()));
- }
- const auto &groups = exact.value("groups").toArray();
- for (const auto &group : groups) {
- newSharees.append(parseSharee(group.toObject()));
- }
- const auto &remotes = exact.value("remotes").toArray();
- for (const auto &remote : remotes) {
- newSharees.append(parseSharee(remote.toObject()));
- }
- }
-
- {
- const auto &users = data.value("users").toArray();
- for (const auto &user : users) {
- newSharees.append(parseSharee(user.toObject()));
- }
- }
- {
- const auto &groups = data.value("groups").toArray();
- for (const auto &group : groups) {
- newSharees.append(parseSharee(group.toObject()));
- }
- }
- {
- const auto &remotes = data.value("remotes").toArray();
- for (const auto &remote : remotes) {
- newSharees.append(parseSharee(remote.toObject()));
- }
- }
-
- // Filter sharees that we have already shared with
- QVector<QSharedPointer<Sharee>> filteredSharees;
- for (const auto &sharee : qAsConst(newSharees)) {
- bool found = false;
- for (const auto &blacklistSharee : qAsConst(_shareeBlacklist)) {
- if (sharee->type() == blacklistSharee->type() && sharee->shareWith() == blacklistSharee->shareWith()) {
- found = true;
- break;
- }
- }
-
- if (found == false) {
- filteredSharees.append(sharee);
- }
- }
-
- setNewSharees(filteredSharees);
- shareesReady();
+ const JsonApiJob::UrlQuery query {
+ { "search", search },
+ { "itemType", _type },
+ { "page", "1" },
+ { "perPage", "50" }
+
+ };
+ auto *job = new JsonApiJob(_account, QStringLiteral("ocs/v1.php/apps/files_sharing/api/v1/sharees"), query, {}, this);
+ connect(job, &JsonApiJob::finishedSignal, this, [job, this] {
+ if (!job->ocsSuccess()) {
+ Q_EMIT displayErrorMessage(job->ocsStatus(), job->ocsMessage());
+ } else if (job->parseError().error == QJsonParseError::NoError) {
+ auto data = job->data().value("ocs").toObject().value("data").toObject();
+
+ QVector<QSharedPointer<Sharee>> newSharees;
+
+ /*
+* Todo properly loop all of this
+ */
+ auto exact = data.value("exact").toObject();
+ {
+ const auto &users = exact.value("users").toArray();
+ for (const auto &user : users) {
+ newSharees.append(parseSharee(user.toObject()));
+ }
+ const auto &groups = exact.value("groups").toArray();
+ for (const auto &group : groups) {
+ newSharees.append(parseSharee(group.toObject()));
+ }
+ const auto &remotes = exact.value("remotes").toArray();
+ for (const auto &remote : remotes) {
+ newSharees.append(parseSharee(remote.toObject()));
+ }
+ }
+
+ {
+ const auto &users = data.value("users").toArray();
+ for (const auto &user : users) {
+ newSharees.append(parseSharee(user.toObject()));
+ }
+ }
+ {
+ const auto &groups = data.value("groups").toArray();
+ for (const auto &group : groups) {
+ newSharees.append(parseSharee(group.toObject()));
+ }
+ }
+ {
+ const auto &remotes = data.value("remotes").toArray();
+ for (const auto &remote : remotes) {
+ newSharees.append(parseSharee(remote.toObject()));
+ }
+ }
+
+ // Filter sharees that we have already shared with
+ QVector<QSharedPointer<Sharee>> filteredSharees;
+ for (const auto &sharee : qAsConst(newSharees)) {
+ bool found = false;
+ for (const auto &blacklistSharee : qAsConst(_shareeBlacklist)) {
+ if (sharee->type() == blacklistSharee->type() && sharee->shareWith() == blacklistSharee->shareWith()) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found == false) {
+ filteredSharees.append(sharee);
+ }
+ }
+
+ setNewSharees(filteredSharees);
+ shareesReady();
+ } });
+ job->start();
}
QSharedPointer<Sharee> ShareeModel::parseSharee(const QJsonObject &data)