Changes to logout prosess and login state storing, logout bug fix
[situare] / src / situareservice / situareservice.cpp
index a125334..5bbb36e 100644 (file)
    USA.
 */
 
-#include "parser.h"
+#include <qjson/parser.h>
 
-#include <QtAlgorithms>
 #include <QDebug>
 #include <QNetworkReply>
 #include <QPixmap>
 #include <QStringList>
+#include <QtAlgorithms>
 #include <QtGlobal>
 
 #include "error.h"
@@ -80,20 +80,24 @@ void SituareService::appendAccessToken(QString &requestUrl)
 {
     qWarning() << __PRETTY_FUNCTION__;
 
-//    requestUrl.append("access_token=");
     requestUrl.append(m_session);
-
-//    qWarning() << __PRETTY_FUNCTION__ << "request url with parameters and access token:" << requestUrl;
 }
 
 void SituareService::buildRequest(const QString &script, const QHash<QString, QString> &parameters)
 {
     qWarning() << __PRETTY_FUNCTION__;
 
+    const QString PARAMETER_KEY_API = "api";
+    const QString PARAMETER_VALUE_API = "2.0";
+
     QString url = SITUARE_URL;
     url.append(script);
     url.append("?");
 
+    // append default api version parameter if not yet specified
+//    if (!parameters.contains(PARAMETER_KEY_API))
+//        url.append(PARAMETER_KEY_API + "=" + PARAMETER_VALUE_API + "&");
+
     // append parameters
     if (!parameters.isEmpty()) {
         QHash<QString, QString>::const_iterator i = parameters.constBegin();
@@ -231,20 +235,15 @@ QString SituareService::formUrlParameters(const GeoCoordinate &coordinates, QStr
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    // one scene pixel is about 5.4e-6 degrees, the integer part is max three digits and one
-    // additional digit is added for maximum precision
-    const int COORDINATE_PRECISION = 10;
-
     QString parameters;
-
     parameters.append(QUESTION_MARK);
     parameters.append(LATITUDE);
     parameters.append(EQUAL_MARK);
-    parameters.append(QString::number(coordinates.latitude(), 'f', COORDINATE_PRECISION));
+    parameters.append(degreesToString(coordinates.latitude()));
     parameters.append(AMBERSAND_MARK);
     parameters.append(LONGTITUDE);
     parameters.append(EQUAL_MARK);
-    parameters.append(QString::number(coordinates.longitude(), 'f', COORDINATE_PRECISION));
+    parameters.append(degreesToString(coordinates.longitude()));
 
     parameters.append(AMBERSAND_MARK);
     parameters.append(PUBLISH);
@@ -530,7 +529,7 @@ void SituareService::sendRequest(const QUrl &url, const QString &cookieType, con
 
 void SituareService::sendRequest(const QString &requestUrl)
 {
-    qWarning() << __PRETTY_FUNCTION__ << requestUrl;
+    qWarning() << __PRETTY_FUNCTION__ << "requestUrl" << requestUrl;
 
     // make and send the request
     QNetworkRequest request;
@@ -546,9 +545,14 @@ void SituareService::updateSession(const QString &session)
 
     m_session = session;
 
-    foreach (QString request, m_requestsWaitingAccessToken) {
-        appendAccessToken(request);
-        sendRequest(request);
+    if (!m_session.isEmpty()) {
+        foreach (QString request, m_requestsWaitingAccessToken) {
+            appendAccessToken(request);
+            sendRequest(request);
+        }
+    }
+    else {
+        clearUserData();
     }
 
     m_requestsWaitingAccessToken.clear();