{
qDebug() << __PRETTY_FUNCTION__;
- //Request sent to server does not need the UID
- QByteArray arr = m_database->getNotifications(613374451);
-
- parseMessagesData(arr);
+ buildRequest(GET_MESSAGES, QHash<QString, QString>());
}
void SituareService::fetchPeopleWithSimilarInterest(const GeoCoordinate &southWestCoordinates,
return SituareService::RequestUpdateLocation;
else if (url.toString().contains(REVERSE_GEO))
return SituareService::RequestReverseGeo;
+ else if (url.toString().contains(GET_MESSAGES))
+ return SituareService::RequestGetMessages;
+ else if (url.toString().contains(REMOVE_MESSAGE))
+ return SituareService::RequestRemoveMessage;
+ else if (url.toString().contains(SEND_MESSAGE))
+ return SituareService::RequestSendMessage;
else
return SituareService::RequestUnknown;
}
void SituareService::parseReply(const QByteArray &jsonReply, RequestName requestName)
{
- qDebug() << __PRETTY_FUNCTION__;
+ qDebug() << __PRETTY_FUNCTION__ << jsonReply;
QJson::Parser parser;
bool ok;
parseUserData(resultData);
else if (requestName == SituareService::RequestUpdateLocation)
emit updateWasSuccessful(SituareService::SuccessfulUpdateLocation);
+ else if (requestName == SituareService::RequestRemoveMessage)
+ emit updateWasSuccessful(SituareService::SuccessfulRemoveMessage);
else if (requestName == SituareService::RequestReverseGeo)
parseReverseGeoData(resultData);
+ else if (requestName == SituareService::RequestGetMessages)
+ parseMessagesData(resultData);
+ else if (requestName == SituareService::RequestSendMessage)
+ emit updateWasSuccessful((SituareService::SuccessfulSendMessage));
}
}
}
}
}
-void SituareService::parseMessagesData(const QByteArray &jsonReply)
+void SituareService::parseMessagesData(const QVariant &messagesData)
{
- QJson::Parser parser;
- bool ok;
-
- QVariantMap result = parser.parse(jsonReply, &ok).toMap();
-
- if (!ok) {
- emit error(ErrorContext::SITUARE, SituareError::INVALID_JSON);
- return;
- } else {
- QVariant messages = result["messages"];
-
- QList<Message> received;
- QList<Message> sent;
-
- foreach (QVariant messageVariant, messages.toMap().value("received").toList()) {
- Message message(Message::MessageTypeReceived);
- QMap<QString, QVariant> messageMap = messageVariant.toMap();
- message.setId(messageMap["id"].toString());
- message.setSenderId(messageMap["sender_id"].toString());
- message.setReceiverId(messageMap["receiver_id"].toString());
- message.setSenderName(messageMap["sender_name"].toString());
- uint timestampSeconds = messageMap["timestamp"].toUInt();
- message.setTimestamp(QDateTime::fromTime_t(timestampSeconds));
- message.setText(messageMap["text"].toString());
- message.setImage(AvatarImage::create(
- QPixmap(":/res/images/empty_avatar.png"), AvatarImage::Small));
-
- bool latOk;
- qreal latitude = messageMap["latitude"].toReal(&latOk);
- bool lonOk;
- qreal longitude = messageMap["longitude"].toReal(&lonOk);
-
- if (latOk && lonOk) {
- message.setAddress(messageMap["address"].toString());
- message.setCoordinates(GeoCoordinate(latitude, longitude));
- }
-
- received.append(message);
-
- //emit fetchImage(message.id(), messageMap["image_url"].toString());
+ QVariantMap result = messagesData.toMap();
+
+ QList<Message> received;
+ QList<Message> sent;
+
+ foreach (QVariant messageVariant, result["received"].toList()) {
+ Message message(Message::MessageTypeReceived);
+ QMap<QString, QVariant> messageMap = messageVariant.toMap();
+ message.setId(messageMap["mid"].toString());
+ message.setSenderId(messageMap["sid"].toString());
+ message.setReceiverId(messageMap["rid"].toString());
+ message.setSenderName(messageMap["name"].toString());
+ uint timestampSeconds = messageMap["timestamp"].toUInt();
+ message.setTimestamp(QDateTime::fromTime_t(timestampSeconds));
+ message.setText(messageMap["message"].toString());
+ message.setImage(AvatarImage::create(
+ QPixmap(":/res/images/empty_avatar.png"), AvatarImage::Small));
+
+ bool latOk;
+ qreal latitude = messageMap["lat"].toReal(&latOk);
+ bool lonOk;
+ qreal longitude = messageMap["lon"].toReal(&lonOk);
+
+ if (latOk && lonOk) {
+ message.setAddress(messageMap["address"].toString());
+ message.setCoordinates(GeoCoordinate(latitude, longitude));
}
- foreach (QVariant messageVariant, messages.toMap().value("sent").toList()) {
- Message message(Message::MessageTypeSent);
- QMap<QString, QVariant> messageMap = messageVariant.toMap();
- message.setId(messageMap["id"].toString());
- message.setSenderId(messageMap["sender_id"].toString());
- message.setReceiverId(messageMap["receiver_id"].toString());
- message.setSenderName(messageMap["sender_name"].toString());
- uint timestampSeconds = messageMap["timestamp"].toUInt();
- message.setTimestamp(QDateTime::fromTime_t(timestampSeconds));
- message.setText(messageMap["text"].toString());
- message.setImage(AvatarImage::create(
- QPixmap(":/res/images/empty_avatar.png"), AvatarImage::Small));
+ received.append(message);
- bool latOk;
- qreal latitude = messageMap["latitude"].toReal(&latOk);
- bool lonOk;
- qreal longitude = messageMap["longitude"].toReal(&lonOk);
-
- if (latOk && lonOk) {
- message.setAddress(messageMap["address"].toString());
- message.setCoordinates(GeoCoordinate(latitude, longitude));
- }
-
- sent.append(message);
+ emit fetchImage(message.id(), messageMap["pic_square"].toString());
+ }
- //emit fetchImage(message.id(), messageMap["image_url"].toString());
+ foreach (QVariant messageVariant, result["sent"].toList()) {
+ Message message(Message::MessageTypeSent);
+ QMap<QString, QVariant> messageMap = messageVariant.toMap();
+ message.setId(messageMap["mid"].toString());
+ message.setSenderId(messageMap["sid"].toString());
+ message.setReceiverId(messageMap["rid"].toString());
+ message.setSenderName(messageMap["name"].toString());
+ uint timestampSeconds = messageMap["timestamp"].toUInt();
+ message.setTimestamp(QDateTime::fromTime_t(timestampSeconds));
+ message.setText(messageMap["message"].toString());
+ message.setImage(AvatarImage::create(
+ QPixmap(":/res/images/empty_avatar.png"), AvatarImage::Small));
+
+ bool latOk;
+ qreal latitude = messageMap["lat"].toReal(&latOk);
+ bool lonOk;
+ qreal longitude = messageMap["lon"].toReal(&lonOk);
+
+ if (latOk && lonOk) {
+ message.setAddress(messageMap["address"].toString());
+ message.setCoordinates(GeoCoordinate(latitude, longitude));
}
- emit messagesReceived(received, sent);
+ sent.append(message);
+
+ emit fetchImage(message.id(), messageMap["pic_square"].toString());
}
+
+ emit messagesReceived(received, sent);
}
void SituareService::parsePopularTagsData(const QByteArray &jsonReply)
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_database->removeMessage(613374451, id))
- emit updateWasSuccessful(SituareService::SuccessfulRemoveMessage);
+ QHash<QString, QString> parameters;
+ parameters.insert("mid", id);
+
+ buildRequest(REMOVE_MESSAGE, parameters);
}
//Reply from situare
if (m_currentRequests.contains(reply)) {
-
if (reply->error())
emit error(ErrorContext::NETWORK, reply->error());
else