7#include "../qplacemanagerengine_nokiav2.h"
8#include "../qgeoerror_messages.h"
11#include <QCoreApplication>
12#include <QtCore/QJsonDocument>
13#include <QtCore/QJsonObject>
17QPlaceContentReplyImpl::QPlaceContentReplyImpl(
const QPlaceContentRequest &request,
19 QPlaceManagerEngineNokiaV2 *engine)
20 : QPlaceContentReply(engine), m_engine(engine)
24 setError(UnknownError, QStringLiteral(
"Null reply"));
29 connect(reply, &QNetworkReply::finished,
30 this, &QPlaceContentReplyImpl::replyFinished);
31 connect(reply, &QNetworkReply::errorOccurred,
32 this, &QPlaceContentReplyImpl::replyError);
33 connect(
this, &QPlaceReply::aborted, reply, &QNetworkReply::abort);
34 connect(
this, &QObject::destroyed, reply, &QObject::deleteLater);
43 QPlaceContentReply::setError(error_, errorString);
44 emit errorOccurred(error_, errorString);
51 QNetworkReply *reply =
static_cast<QNetworkReply *>(sender());
54 if (reply->error() != QNetworkReply::NoError)
57 QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
58 if (!document.isObject()) {
59 setError(ParseError, QCoreApplication::translate(NOKIA_PLUGIN_CONTEXT_NAME, PARSE_ERROR));
63 QJsonObject object = document.object();
65 QPlaceContent::Collection collection;
67 QPlaceContentRequest previous;
68 QPlaceContentRequest next;
70 parseCollection(request().contentType(), object, &collection, &totalCount,
71 &previous, &next, m_engine);
73 setTotalCount(totalCount);
74 setContent(collection);
75 setPreviousPageRequest(previous);
76 setNextPageRequest(next);
84 QNetworkReply *reply =
static_cast<QNetworkReply *>(sender());
86 if (error == QNetworkReply::OperationCanceledError)
87 setError(QPlaceReply::CancelError, QStringLiteral(
"Request cancelled"));
89 setError(QPlaceReply::CommunicationError, reply->errorString());
~QPlaceContentReplyImpl()