parseInterestingPeopleData(arr);
}
+void SituareService::fetchPopularTags()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ QByteArray arr = m_database->getPopularTags();
+
+ parsePopularTagsData(arr);
+}
+
void SituareService::fetchLocations()
{
qDebug() << __PRETTY_FUNCTION__;
return parameters;
}
-void SituareService::sendMessage(const QString &receiverId, const QString &message)
+void SituareService::sendMessage(const QString &receiverId, const QString &message,
+ const GeoCoordinate &coordinates)
{
qDebug() << __PRETTY_FUNCTION__;
- qWarning() << __PRETTY_FUNCTION__ << m_database->sendMessage(613374451, receiverId.toULongLong(), message);
+ if (m_database->sendMessage(613374451, receiverId.toULongLong(), message, coordinates))
+ emit updateWasSuccessful(SituareService::SuccessfulSendMessage);
}
void SituareService::sendRequest(const QUrl &url, const QString &cookieType, const QString &cookie)
parseUserData(replyArray);
} else if(replyArray.isEmpty()) {
if(reply->url().toString().contains(UPDATE_LOCATION.toAscii())) {
- emit updateWasSuccessful();
+ emit updateWasSuccessful(SituareService::SuccessfulUpdateLocation);
} else {
// session credentials are invalid
emit error(ErrorContext::SITUARE, SituareError::SESSION_EXPIRED);
emit error(ErrorContext::SITUARE, SituareError::INVALID_JSON);
return;
} else {
- QList<User> interestingPeople;
+ QVariant people = result["people"];
+
+ QList<User> friends;
+ QList<User> others;
- foreach (QVariant personVariant, result["people"].toList()) {
+ foreach (QVariant personVariant, people.toMap().value("friends").toList()) {
User user;
QMap<QString, QVariant> person = personVariant.toMap();
user.setUserId(person["uid"].toString());
QPixmap(":/res/images/empty_avatar.png"), AvatarImage::Small));
user.setProfileImageUrl(person["image_url"].toUrl());
user.setTags(person["tags"].toList());
- interestingPeople.append(user);
+
+ bool latOk;
+ qreal latitude = person["latitude"].toReal(&latOk);
+ bool lonOk;
+ qreal longitude = person["longitude"].toReal(&lonOk);
+
+ if (latOk && lonOk)
+ user.setCoordinates(GeoCoordinate(latitude, longitude));
+
+ friends.append(user);
//Remove comment when the actual server is used
//emit fetchImage(user.userId(), user.profileImageUrl());
}
- emit interestingPeopleReceived(interestingPeople);
+ foreach (QVariant personVariant, people.toMap().value("others").toList()) {
+ User user;
+ QMap<QString, QVariant> person = personVariant.toMap();
+ user.setUserId(person["uid"].toString());
+ user.setName(person["name"].toString());
+ user.setProfileImage(AvatarImage::create(
+ QPixmap(":/res/images/empty_avatar.png"), AvatarImage::Small));
+ user.setProfileImageUrl(person["image_url"].toUrl());
+ user.setTags(person["tags"].toList());
+
+ others.append(user);
+
+ //Remove comment when the actual server is used
+ //emit fetchImage(user.userId(), user.profileImageUrl());
+ }
+
+ emit interestingPeopleReceived(friends, others);
}
}
emit error(ErrorContext::SITUARE, SituareError::INVALID_JSON);
return;
} else {
- QList<Message> messages;
+ QVariant messages = result["messages"];
+
+ QList<Message> received;
+ QList<Message> sent;
- foreach (QVariant messageVariant, result["messages"].toList()) {
- Message message;
+ 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.setImage(AvatarImage::create(
QPixmap(":/res/images/empty_avatar.png"), AvatarImage::Small));
- messages.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));
+ }
+
+ received.append(message);
//emit fetchImage(message.id(), messageMap["image_url"].toString());
}
- emit messagesReceived(messages);
+ 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));
+
+ 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["image_url"].toString());
+ }
+
+ emit messagesReceived(received, sent);
+ }
+}
+
+void SituareService::parsePopularTagsData(const QByteArray &jsonReply)
+{
+ 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;
+
+ foreach (QVariant tagVariant, result["popular_tags"].toList()) {
+ QMap<QString, QVariant> tag = tagVariant.toMap();
+ popularTags.insert(tag["id"].toString(), tag["name"].toString());
+ }
+
+ emit interestingPeopleReceived(friends, others);
}
}
+
void SituareService::parseUserData(const QByteArray &jsonReply)
{
qDebug() << __PRETTY_FUNCTION__;
{
qDebug() << __PRETTY_FUNCTION__;
- m_database->removeTags(613374451, tags);
+ if (m_database->removeTags(613374451, tags))
+ emit updateWasSuccessful(SituareService::SuccessfulRemoveTags);
+}
+
+void SituareService::removeMessage(const QString &id)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ if (m_database->removeMessage(613374451, id))
+ emit updateWasSuccessful(SituareService::SuccessfulRemoveMessage);
}
void SituareService::addTags(const QStringList &tags)
foreach (QString tag, tags)
m_database->addTag(613374451, tag);
+
+ emit updateWasSuccessful(SituareService::SuccessfulAddTags);
+}
+
+void SituareService::searchPeopleByTag(const QString &tag)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ QByteArray arr = m_database->getInterestingPeopleByTag(613374451, tag);
+
+ parseInterestingPeopleData(arr);
}