Add news and notifications

This commit is contained in:
aiamnezia 2025-06-20 02:22:44 +04:00
parent 2605978889
commit 470ce0f9c8
17 changed files with 546 additions and 1 deletions

View file

@ -0,0 +1,37 @@
#include "apiNewsController.h"
#include <QJsonDocument>
#include <QJsonObject>
ApiNewsController::ApiNewsController(const QSharedPointer<NewsModel> &newsModel,
const std::shared_ptr<Settings> &settings,
QObject *parent)
: QObject(parent), m_newsModel(newsModel), m_settings(settings)
{
}
void ApiNewsController::fetchNews()
{
GatewayController gatewayController(m_settings->getGatewayEndpoint(), m_settings->isDevGatewayEnv(),
apiDefs::requestTimeoutMsecs, m_settings->isStrictKillSwitchEnabled());
QByteArray responseBody;
ErrorCode errorCode = gatewayController.get(QString("%1v1/news"), responseBody);
qDebug() << "fetchNews" << errorCode;
if (errorCode != ErrorCode::NoError) {
emit errorOccurred(errorCode);
return;
}
QJsonDocument doc = QJsonDocument::fromJson(responseBody);
QJsonArray newsArray;
if (doc.isArray()) {
newsArray = doc.array();
} else if (doc.isObject()) {
QJsonObject obj = doc.object();
if (obj.value("news").isArray()) {
newsArray = obj.value("news").toArray();
}
}
m_newsModel->updateModel(newsArray);
}