File indexing completed on 2024-06-02 05:21:54
0001 /* 0002 SPDX-FileCopyrightText: 2016 Stefan Stäglich <sstaeglich@kdemail.net> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "tomboyitemsdownloadjob.h" 0008 #include "debug.h" 0009 #include <Akonadi/NoteUtils> 0010 #include <QJsonArray> 0011 #include <QJsonDocument> 0012 #include <QJsonObject> 0013 0014 TomboyItemsDownloadJob::TomboyItemsDownloadJob(Akonadi::Collection::Id id, QNetworkAccessManager *manager, QObject *parent) 0015 : TomboyJobBase(manager, parent) 0016 , mCollectionId(id) 0017 { 0018 } 0019 0020 Akonadi::Item::List TomboyItemsDownloadJob::items() const 0021 { 0022 return mResultItems; 0023 } 0024 0025 void TomboyItemsDownloadJob::start() 0026 { 0027 // Get all notes 0028 QNetworkRequest request = QNetworkRequest(QUrl(mContentURL)); 0029 mReply = mRequestor->get(request, QList<O0RequestParameter>()); 0030 0031 connect(mReply, &QNetworkReply::finished, this, &TomboyItemsDownloadJob::onRequestFinished); 0032 qCDebug(TOMBOYNOTESRESOURCE_LOG) << "TomboyItemsDownloadJob: Start network request"; 0033 } 0034 0035 void TomboyItemsDownloadJob::onRequestFinished() 0036 { 0037 qCDebug(TOMBOYNOTESRESOURCE_LOG) << "TomboyItemsDownloadJob: Network request finished"; 0038 checkReplyError(); 0039 if (error() != TomboyJobError::NoError) { 0040 setErrorText(mReply->errorString()); 0041 emitResult(); 0042 return; 0043 } 0044 0045 // Parse received data as JSON 0046 const QJsonDocument document = QJsonDocument::fromJson(mReply->readAll(), nullptr); 0047 0048 const QJsonObject jo = document.object(); 0049 const QJsonArray notes = jo[QLatin1StringView("notes")].toArray(); 0050 0051 for (const auto ¬e : notes) { 0052 Akonadi::Item item(Akonadi::NoteUtils::noteMimeType()); 0053 item.setRemoteId(note.toObject()[QLatin1StringView("guid")].toString()); 0054 mResultItems << item; 0055 qCDebug(TOMBOYNOTESRESOURCE_LOG) << "TomboyItemsDownloadJob: Retrieving note with id" << item.remoteId(); 0056 } 0057 0058 setError(TomboyJobError::NoError); 0059 emitResult(); 0060 } 0061 0062 #include "moc_tomboyitemsdownloadjob.cpp"