Get user tags from server instead of temp db
[situare] / src / situareservice / situareservice.cpp
index eef5991..27bf49b 100644 (file)
@@ -227,15 +227,18 @@ SituareService::RequestName SituareService::getRequestName(const QUrl &url) cons
         return SituareService::RequestGetPopularTags;
     else if (url.toString().contains(ADD_TAGS))
         return SituareService::RequestAddTags;
+    else if (url.toString().contains(GET_TAGS))
+        return SituareService::RequestGetTags;
     else
         return SituareService::RequestUnknown;
 }
 
-QHash<QString, QString> SituareService::getTags(const QString &userId)
+void SituareService::getTags()
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    return m_database->getTags(userId.toInt());
+    QHash<QString, QString> parameters;
+    buildRequest(GET_TAGS, parameters);
 }
 
 void SituareService::imageReceived(const QString &id, const QPixmap &image)
@@ -353,6 +356,8 @@ void SituareService::parseReply(const QByteArray &jsonReply, RequestName request
                 parsePopularTagsData(resultData);
             else if (requestName == SituareService::RequestAddTags)
                 emit updateWasSuccessful(SituareService::SuccessfulAddTags);
+            else if (requestName == SituareService::RequestGetTags)
+                parseUserTagsData(resultData);
         }
     }
 }
@@ -513,9 +518,6 @@ void SituareService::parseUserData(const QVariant &userData)
         }
         tmpFriendsList.clear();
 
-        //REMOVE WHEN NOT NEEDED! get user tags and set tags to the user
-        m_user->setTags(getTags(m_user->userId()));
-
         emit userDataChanged(m_user, m_friendsList);
 
         // set silhouette image to imageUrlList for downloading
@@ -608,6 +610,21 @@ void SituareService::parsePopularTagsData(const QVariant &popularTagsData)
     emit popularTagsReceived(popularTags);
 }
 
+void SituareService::parseUserTagsData(const QVariant &userTagsData)
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    QVariantMap result = userTagsData.toMap();
+    QHash<QString, QString> userTags;
+
+    foreach (QVariant tagVariant, result["user_tags"].toList()) {
+        QMap<QString, QVariant> tag = tagVariant.toMap();
+        userTags.insert(tag["tid"].toString(), tag["name"].toString());
+    }
+
+    emit userTagsReceived(userTags);
+}
+
 void SituareService::removeMessage(const QString &id)
 {
     qDebug() << __PRETTY_FUNCTION__;