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"
qWarning() << __PRETTY_FUNCTION__;
// requestUrl.append("access_token=");
- requestUrl.append(m_accessToken);
+ requestUrl.append(m_session);
// qWarning() << __PRETTY_FUNCTION__ << "request url with parameters and access token:" << requestUrl;
}
{
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();
// qWarning() << __PRETTY_FUNCTION__ << "request url with parameters:" << url;
- if (!m_accessToken.isEmpty()) {
+ if (!m_session.isEmpty()) {
appendAccessToken(url);
sendRequest(url);
} else {
emit userDataChanged(m_user, m_friendsList);
}
-void SituareService::credentialsReady(const FacebookCredentials &credentials)
+QString SituareService::degreesToString(double degrees)
{
qDebug() << __PRETTY_FUNCTION__;
- m_credentials = credentials;
+ // 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 PRECISION = 10;
+
+ return QString::number(degrees, 'f', PRECISION);
}
void SituareService::fetchLocations()
{
qDebug() << __PRETTY_FUNCTION__;
-// QString cookie = formCookie(API_KEY, m_credentials.expires(), m_credentials.userID(),
-// m_credentials.sessionKey(), m_credentials.sessionSecret(),
-// m_credentials.sig(), EN_LOCALE);
-
-// QUrl url = formUrl(SITUARE_URL, GET_LOCATIONS);
-// sendRequest(url, COOKIE, cookie);
-
QHash<QString, QString> parameters;
parameters.insert("extra_user_data", NORMAL_SIZE_PROFILE_IMAGE);
{
qDebug() << __PRETTY_FUNCTION__;
+ qWarning() << __PRETTY_FUNCTION__ << "Server reply:" << jsonReply;
+
m_defaultImage = false;
QJson::Parser parser;
{
qDebug() << __PRETTY_FUNCTION__;
- QString cookie = formCookie(API_KEY, m_credentials.expires(),m_credentials.userID(),
- m_credentials.sessionKey(), m_credentials.sessionSecret(),
- m_credentials.sig(), EN_LOCALE);
-
- QString urlParameters = formUrlParameters(coordinates);
- urlParameters.append(JSON_FORMAT);
- QUrl url = formUrl(SITUARE_URL, REVERSE_GEO, urlParameters);
+ QHash<QString, QString> parameters;
+ parameters.insert("lat", degreesToString(coordinates.latitude()));
+ parameters.insert("lon", degreesToString(coordinates.longitude()));
+ parameters.insert("format", "json");
- sendRequest(url, COOKIE, cookie);
+ buildRequest(REVERSE_GEO, parameters);
}
void SituareService::sendRequest(const QUrl &url, const QString &cookieType, const QString &cookie)
void SituareService::sendRequest(const QString &requestUrl)
{
- qWarning() << __PRETTY_FUNCTION__ << requestUrl;
+ qWarning() << __PRETTY_FUNCTION__ << "requestUrl" << requestUrl;
// make and send the request
QNetworkRequest request;
m_currentRequests.append(reply);
}
-void SituareService::updateAccessToken(const QString &accessToken)
+void SituareService::updateSession(const QString &session)
{
qWarning() << __PRETTY_FUNCTION__;
- m_accessToken = accessToken;
+ m_session = session;
foreach (QString request, m_requestsWaitingAccessToken) {
appendAccessToken(request);
{
qDebug() << __PRETTY_FUNCTION__;
- QString urlParameters = formUrlParameters(coordinates, status, publish);
- QUrl url = formUrl(SITUARE_URL, UPDATE_LOCATION, urlParameters);
-
- QString cookie = formCookie(API_KEY, m_credentials.expires(), m_credentials.userID(),
- m_credentials.sessionKey(), m_credentials.sessionSecret(),
- m_credentials.sig(), EN_LOCALE);
+ QHash<QString, QString> parameters;
+ parameters.insert("lat", degreesToString(coordinates.latitude()));
+ parameters.insert("lon", degreesToString(coordinates.longitude()));
+ parameters.insert("publish", publish ? "true" : "false");
+ parameters.insert("data", status); ///< @todo if !empty ???
- sendRequest(url, COOKIE, cookie);
+ buildRequest(UPDATE_LOCATION, parameters);
}