From 6e83005d998959ff5eb134ece62b4cd36bb0f547 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 19 Apr 2016 10:27:33 +0200 Subject: [PATCH] API for renaming ownCloud feeds. --- .../network/owncloudnetworkfactory.cpp | 29 ++++++++++++++++++- .../owncloud/network/owncloudnetworkfactory.h | 6 ++-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/services/owncloud/network/owncloudnetworkfactory.cpp b/src/services/owncloud/network/owncloudnetworkfactory.cpp index 27f380957..be7b74b63 100755 --- a/src/services/owncloud/network/owncloudnetworkfactory.cpp +++ b/src/services/owncloud/network/owncloudnetworkfactory.cpp @@ -36,7 +36,7 @@ OwnCloudNetworkFactory::OwnCloudNetworkFactory() : m_url(QString()), m_fixedUrl(QString()), m_forceServerSideUpdate(false), m_authUsername(QString()), m_authPassword(QString()), m_urlUser(QString()), m_urlStatus(QString()), m_urlFolders(QString()), m_urlFeeds(QString()), m_urlMessages(QString()), m_urlFeedsUpdate(QString()), - m_urlDeleteFeed(QString()), m_userId(QString()) { + m_urlDeleteFeed(QString()), m_urlRenameFeed(QString()), m_userId(QString()) { } OwnCloudNetworkFactory::~OwnCloudNetworkFactory() { @@ -64,6 +64,7 @@ void OwnCloudNetworkFactory::setUrl(const QString &url) { m_urlMessages = m_fixedUrl + API_PATH + "items?id=%1&batchSize=%2&type=%3"; m_urlFeedsUpdate = m_fixedUrl + API_PATH + "feeds/update?userId=%1&feedId=%2"; m_urlDeleteFeed = m_fixedUrl + API_PATH + "feeds/%1"; + m_urlRenameFeed = m_fixedUrl + API_PATH + "feeds/%1/rename"; setUserId(QString()); } @@ -223,6 +224,32 @@ bool OwnCloudNetworkFactory::createFeed(const QString &url, int parent_id) { } } +bool OwnCloudNetworkFactory::renameFeed(const QString &new_name, int feed_id) { + QString final_url = m_urlRenameFeed.arg(QString::number(feed_id)); + QByteArray result_raw; + QJsonObject json; + + json["feedTitle"] = new_name; + + NetworkResult network_reply = NetworkFactory::performNetworkOperation(final_url, + qApp->settings()->value(GROUP(Feeds), + SETTING(Feeds::UpdateTimeout)).toInt(), + QJsonDocument(json).toJson(QJsonDocument::Compact), + QSL("application/json"), result_raw, + QNetworkAccessManager::PutOperation, + true, m_authUsername, m_authPassword, + true); + m_lastError = network_reply.first; + + if (network_reply.first != QNetworkReply::NoError) { + qWarning("ownCloud: Renaming of feed failed with error %d.", network_reply.first); + return false; + } + else { + return true; + } +} + OwnCloudGetMessagesResponse OwnCloudNetworkFactory::getMessages(int feed_id) { if (forceServerSideUpdate()) { triggerFeedUpdate(feed_id); diff --git a/src/services/owncloud/network/owncloudnetworkfactory.h b/src/services/owncloud/network/owncloudnetworkfactory.h index 3695a66e1..02b7cdf62 100755 --- a/src/services/owncloud/network/owncloudnetworkfactory.h +++ b/src/services/owncloud/network/owncloudnetworkfactory.h @@ -119,11 +119,10 @@ class OwnCloudNetworkFactory { // Get feeds & categories (used for sync-in). OwnCloudGetFeedsCategoriesResponse feedsCategories(); - // Delete a feed. + // Feed operations. bool deleteFeed(int feed_id); - - // Creates new feed. bool createFeed(const QString &url, int parent_id); + bool renameFeed(const QString &new_name, int feed_id); // Get messages for given feed. OwnCloudGetMessagesResponse getMessages(int feed_id); @@ -150,6 +149,7 @@ class OwnCloudNetworkFactory { QString m_urlMessages; QString m_urlFeedsUpdate; QString m_urlDeleteFeed; + QString m_urlRenameFeed; QString m_userId; };