Implemented UpdateTimeAssignmentReply

This commit is contained in:
0xFEEDC0DE64 committed 2017-12-10 16:56:57 +01:00
1 parent 683def689a
commit 89bbd3d6d2
3 files changed
+71 -44

No files matched your search

+62 -3
View File
@@ -1,7 +1,66 @@
#include "updatetimeassignmentreply.h"
UpdateTimeAssignmentReply::UpdateTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung)
: ZeiterfassungReply(zeiterfassung)
{
#include <QNetworkReply>
#include <QJsonParseError>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonValue>
UpdateTimeAssignmentReply::UpdateTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
m_reply(reply),
m_timeAssignmentId(-1)
{
connect(reply, &QNetworkReply::finished, this, &UpdateTimeAssignmentReply::requestFinished);
}
int UpdateTimeAssignmentReply::timeAssignmentId() const
{
return m_timeAssignmentId;
}
void UpdateTimeAssignmentReply::requestFinished()
{
if(m_reply->error() != QNetworkReply::NoError)
{
setSuccess(false);
setMessage(tr("Request error occured: %0").arg(m_reply->error()));
goto end;
}
{
QJsonParseError error;
QJsonDocument document = QJsonDocument::fromJson(m_reply->readAll(), &error);
if(error.error != QJsonParseError::NoError)
{
setSuccess(false);
setMessage(tr("Parsing JSON failed: %0").arg(error.errorString()));
goto end;
}
if(!document.isObject())
{
setSuccess(false);
setMessage(tr("JSON document is not an object!"));
goto end;
}
auto obj = document.object();
if(!obj.contains(QStringLiteral("bookingNr")))
{
setSuccess(false);
setMessage(tr("JSON does not contain bookingNr!"));
goto end;
}
setSuccess(true);
m_timeAssignmentId = obj.value(QStringLiteral("bookingNr")).toInt();
}
end:
m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
}
+9
View File
@@ -11,6 +11,15 @@ class UpdateTimeAssignmentReply : public ZeiterfassungReply
public:
UpdateTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
int timeAssignmentId() const;
private Q_SLOTS:
void requestFinished();
private:
QNetworkReply *m_reply;
int m_timeAssignmentId;
};
#endif // UPDATETIMEASSIGNMENTREPLY_H
-41
View File
@@ -291,47 +291,6 @@ GetAuswertungReply *ZeiterfassungApi::doGetAuswertung(int userId, const QDate &d
return new GetAuswertungReply(reply, this);
}
void ZeiterfassungApi::updateTimeAssignmentRequestFinished()
{
if(m_replies.updateTimeAssignment->error() != QNetworkReply::NoError)
{
Q_EMIT updateTimeAssignmentFinished(false, tr("Request error occured: %0").arg(m_replies.updateTimeAssignment->error()), -1);
goto end;
}
{
QJsonParseError error;
QJsonDocument document = QJsonDocument::fromJson(m_replies.updateTimeAssignment->readAll(), &error);
if(error.error != QJsonParseError::NoError)
{
Q_EMIT updateTimeAssignmentFinished(false, tr("Parsing JSON failed: %0").arg(error.errorString()), -1);
goto end;
}
if(!document.isObject())
{
Q_EMIT updateTimeAssignmentFinished(false, tr("JSON document is not an object!"), 0);
goto end;
}
auto obj = document.object();
if(!obj.contains(QStringLiteral("bookingNr")))
{
Q_EMIT updateTimeAssignmentFinished(false, tr("JSON does not contain bookingNr!"), 0);
goto end;
}
auto timeAssignmentId = obj.value(QStringLiteral("bookingNr")).toInt();
Q_EMIT updateTimeAssignmentFinished(true, QString(), timeAssignmentId);
}
end:
m_replies.updateTimeAssignment->deleteLater();
m_replies.updateTimeAssignment = Q_NULLPTR;
}
void ZeiterfassungApi::deleteTimeAssignmentRequestFinished()
{
if(m_replies.deleteTimeAssignment->error() != QNetworkReply::NoError)