Changed fetchPopularTags to send request to Situare server instead of local DB
authorJussi Laitinen <jussi.laitinen@ixonos.com>
Tue, 8 Mar 2011 17:22:29 +0000 (19:22 +0200)
committerJussi Laitinen <jussi.laitinen@ixonos.com>
Tue, 8 Mar 2011 17:22:29 +0000 (19:22 +0200)
src/situareservice/situarecommon.h
src/situareservice/situareservice.cpp
src/situareservice/situareservice.h

index a3df703..c5258d4 100644 (file)
@@ -47,6 +47,7 @@ const QString GET_MESSAGES = "getMessages.php";
 const QString SEND_MESSAGE = "sendMessage.php";
 const QString REMOVE_MESSAGE = "removeMessage.php";
 const QString GET_PEOPLE_WITH_SIMILAR_INTEREST = "getInterestingPeople.php";
+const QString GET_POPULAR_TAGS = "getPopularTags.php";
 
 // Cookies
 const QString COOKIE = "Cookie";
index 8ad5420..b9beb7b 100644 (file)
@@ -192,9 +192,7 @@ void SituareService::fetchPopularTags()
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    QByteArray arr = m_database->getPopularTags();
-
-    parsePopularTagsData(arr);
+    buildRequest(GET_POPULAR_TAGS, QHash<QString, QString>());
 }
 
 void SituareService::fetchLocations()
@@ -225,6 +223,8 @@ SituareService::RequestName SituareService::getRequestName(const QUrl &url) cons
         return SituareService::RequestSendMessage;
     else if (url.toString().contains(GET_PEOPLE_WITH_SIMILAR_INTEREST))
         return SituareService::RequestGetPeopleWithSimilarInterest;
+    else if (url.toString().contains(GET_POPULAR_TAGS))
+        return SituareService::RequestGetPopularTags;
     else
         return SituareService::RequestUnknown;
 }
@@ -347,6 +347,8 @@ void SituareService::parseReply(const QByteArray &jsonReply, RequestName request
                 emit updateWasSuccessful((SituareService::SuccessfulSendMessage));
             else if (requestName == SituareService::RequestGetPeopleWithSimilarInterest)
                 parseInterestingPeopleData(resultData);
+            else if (requestName == SituareService::RequestGetPopularTags)
+                parsePopularTagsData(resultData);
         }
     }
 }
@@ -587,28 +589,19 @@ void SituareService::parseMessagesData(const QVariant &messagesData)
     emit messagesReceived(received, sent);
 }
 
-void SituareService::parsePopularTagsData(const QByteArray &jsonReply)
+void SituareService::parsePopularTagsData(const QVariant &popularTagsData)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    QJson::Parser parser;
-    bool ok;
-
-    QVariantMap result = parser.parse(jsonReply, &ok).toMap();
-
-    if (!ok) {
-        emit error(ErrorContext::SITUARE, SituareError::INVALID_JSON);
-        return;
-    } else {
-        QHash<QString, QString> popularTags;
+    QVariantMap result = popularTagsData.toMap();
+    QHash<QString, QString> popularTags;
 
-        foreach (QVariant tagVariant, result["popular_tags"].toList()) {
-            QMap<QString, QVariant> tag = tagVariant.toMap();
-            popularTags.insert(tag["id"].toString(), tag["name"].toString());
-        }
-
-        emit popularTagsReceived(popularTags);
+    foreach (QVariant tagVariant, result["popular_tags"].toList()) {
+        QMap<QString, QVariant> tag = tagVariant.toMap();
+        popularTags.insert(tag["tid"].toString(), tag["name"].toString());
     }
+
+    emit popularTagsReceived(popularTags);
 }
 
 void SituareService::removeMessage(const QString &id)
index 90d22ad..8923cb8 100644 (file)
@@ -60,7 +60,8 @@ private:
                        RequestGetMessages,
                        RequestRemoveMessage,
                        RequestSendMessage,
-                       RequestGetPeopleWithSimilarInterest};
+                       RequestGetPeopleWithSimilarInterest,
+                       RequestGetPopularTags};
 
 public:
 
@@ -260,9 +261,9 @@ private:
     /**
     * @brief Parses popular tags data from JSON string
     *
-    * @param jsonReply JSON string
+    * @param popularTagsData popular tags data QVariant tree
     */
-    void parsePopularTagsData(const QByteArray &jsonReply);
+    void parsePopularTagsData(const QVariant &popularTagsData);
 
     /**
     * @brief Parses reply from JSON string