mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-16 18:35:35 +08:00
Do not ASSERT in booking reader if format is NOT compatibel
See https://discordapp.com/channels/539048679160676382/568904623151382546/582299692352929793
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
#include "blackmisc/network/url.h"
|
#include "blackmisc/network/url.h"
|
||||||
#include "blackmisc/network/user.h"
|
#include "blackmisc/network/user.h"
|
||||||
#include "blackmisc/statusmessage.h"
|
#include "blackmisc/statusmessage.h"
|
||||||
|
#include "blackmisc/verify.h"
|
||||||
|
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
@@ -99,15 +100,30 @@ namespace BlackCore
|
|||||||
const QString xmlData = nwReply->readAll();
|
const QString xmlData = nwReply->readAll();
|
||||||
nwReply->close(); // close asap
|
nwReply->close(); // close asap
|
||||||
|
|
||||||
|
if (xmlData.isEmpty() || !xmlData.contains("<bookings>", Qt::CaseInsensitive))
|
||||||
|
{
|
||||||
|
CLogMessage(this).warning(u"Reading bookings wrong XML format for '%1'") << nwReply->url().toString();
|
||||||
|
m_failures++;
|
||||||
|
emit this->dataRead(CEntityFlags::BookingEntity, CEntityFlags::ReadFailed, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QDomDocument doc;
|
QDomDocument doc;
|
||||||
QDateTime updateTimestamp = QDateTime::currentDateTimeUtc(); // default
|
QDateTime updateTimestamp = QDateTime::currentDateTimeUtc(); // default
|
||||||
if (doc.setContent(xmlData))
|
if (doc.setContent(xmlData))
|
||||||
{
|
{
|
||||||
const QDomNode timestamp = doc.elementsByTagName("timestamp").at(0);
|
const QDomNode timestamp = doc.elementsByTagName("timestamp").at(0);
|
||||||
const QString ts = timestamp.toElement().text().trimmed();
|
const QString ts = timestamp.toElement().text().trimmed();
|
||||||
Q_ASSERT(!ts.isEmpty());
|
BLACK_AUDIT_X(!ts.isEmpty(), Q_FUNC_INFO, "Wrong timestamp format");
|
||||||
|
|
||||||
if (!ts.isEmpty())
|
if (ts.isEmpty())
|
||||||
|
{
|
||||||
|
CLogMessage(this).warning(u"Reading bookings wrong XML timestamp format for '%1'") << nwReply->url().toString();
|
||||||
|
m_failures++;
|
||||||
|
emit this->dataRead(CEntityFlags::BookingEntity, CEntityFlags::ReadFailed, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
// normally the timestamp is always updated from backend
|
// normally the timestamp is always updated from backend
|
||||||
// if this changes in the future we're prepared
|
// if this changes in the future we're prepared
|
||||||
|
|||||||
Reference in New Issue
Block a user