Refactored to match server v2.0 changes.
[situare] / src / situareservice / situareservice.h
index a740c48..77096cb 100644 (file)
@@ -45,8 +45,16 @@ class SituareService : public QObject
 {
     Q_OBJECT
 
-public:
+private:
+    /**
+    * @brief Request name enum
+    */
+    enum RequestName { RequestUnknown,
+                       RequestGetLocations,
+                       RequestUpdateLocation,
+                       RequestReverseGeo};
 
+public:
     /**
     * @brief Default constructor
     *
@@ -134,11 +142,33 @@ private:
     QString degreesToString(double degrees);
 
     /**
+    * @brief Returns reuquest script's name.
+    *
+    * @param url url to check
+    * @return RequestName
+    */
+    SituareService::RequestName getRequestName(const QUrl &url) const;
+
+    /**
+    * @brief Parses reply from JSON string
+    *
+    * Calls different parse methods or emits error signal if response contains error status.
+    */
+    void parseReply(const QByteArray &jsonReply, RequestName requestName);
+
+    /**
+    * @brief Parses reverse geo data
+    *
+    * @param reverseGeoData reverse geo data QVariant tree
+    */
+    void parseReverseGeoData(const QVariant &reverseGeoData);
+
+    /**
     * @brief Parses user and friend data from JSON string
     *
-    * @param jsonReply JSON string
+    * @param userData user data QVariant tree
     */
-    void parseUserData(const QByteArray &jsonReply);
+    void parseUserData(const QVariant &userData);
 
     /**
       * @brief Build and send request