From 8aa9c19cdf8635fdf1762cdbfeb0fb7361ef1b62 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 15 Feb 2021 20:09:47 +0100 Subject: [PATCH] save --- src/librssguard/services/feedly/definitions.h | 1 + .../services/feedly/feedlynetwork.cpp | 34 +++++++++++++++++-- .../services/feedly/feedlynetwork.h | 3 +- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/librssguard/services/feedly/definitions.h b/src/librssguard/services/feedly/definitions.h index 848a41498..587d58d94 100755 --- a/src/librssguard/services/feedly/definitions.h +++ b/src/librssguard/services/feedly/definitions.h @@ -19,5 +19,6 @@ #define FEEDLY_API_URL_TOKEN "auth/token" #define FEEDLY_API_URL_PROFILE "profile" #define FEEDLY_API_URL_COLLETIONS "collections" +#define FEEDLY_API_URL_TAGS "tags" #endif // FEEDLY_DEFINITIONS_H diff --git a/src/librssguard/services/feedly/feedlynetwork.cpp b/src/librssguard/services/feedly/feedlynetwork.cpp index b1cd2ba34..0f2597c14 100755 --- a/src/librssguard/services/feedly/feedlynetwork.cpp +++ b/src/librssguard/services/feedly/feedlynetwork.cpp @@ -142,14 +142,14 @@ QVariantHash FeedlyNetwork::profile(const QNetworkProxy& network_proxy) { QString target_url = fullUrl(Service::Profile); int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(); - QByteArray output_msgs; + QByteArray output; // This method uses proxy via parameter, // not via "m_service" field. auto result = NetworkFactory::performNetworkOperation(target_url, timeout, {}, - output_msgs, + output, QNetworkAccessManager::Operation::GetOperation, { bearerHeader(bear) }, false, @@ -161,10 +161,35 @@ QVariantHash FeedlyNetwork::profile(const QNetworkProxy& network_proxy) { throw NetworkException(result.first); } - return QJsonDocument::fromJson(output_msgs).object().toVariantHash(); + return QJsonDocument::fromJson(output).object().toVariantHash(); } QList FeedlyNetwork::tags() { + QString bear = bearer(); + + if (bear.isEmpty()) { + qCriticalNN << LOGSEC_FEEDLY << "Cannot obtain tags, because bearer is empty."; + throw NetworkException(QNetworkReply::NetworkError::AuthenticationRequiredError); + } + + QString target_url = fullUrl(Service::Tags); + int timeout = qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(); + QByteArray output; + auto result = NetworkFactory::performNetworkOperation(target_url, + timeout, + {}, + output, + QNetworkAccessManager::Operation::GetOperation, + { bearerHeader(bear) }, + false, + {}, + {}, + m_service->networkProxy()); + + if (result.first != QNetworkReply::NetworkError::NoError) { + throw NetworkException(result.first); + } + return {}; } @@ -250,6 +275,9 @@ QString FeedlyNetwork::fullUrl(FeedlyNetwork::Service service) const { case Service::Collections: return QSL(FEEDLY_API_URL_BASE) + FEEDLY_API_URL_COLLETIONS; + case Service::Tags: + return QSL(FEEDLY_API_URL_BASE) + FEEDLY_API_URL_TAGS; + default: return FEEDLY_API_URL_BASE; } diff --git a/src/librssguard/services/feedly/feedlynetwork.h b/src/librssguard/services/feedly/feedlynetwork.h index 94ce765d8..591e01292 100755 --- a/src/librssguard/services/feedly/feedlynetwork.h +++ b/src/librssguard/services/feedly/feedlynetwork.h @@ -50,7 +50,8 @@ class FeedlyNetwork : public QObject { private: enum class Service { Profile, - Collections + Collections, + Tags }; QString fullUrl(Service service) const;