#include "replayhelper.h" #include #include #include #include #include #include ReplayHelper::ReplayHelper() { connect(&m_manager, &QNetworkAccessManager::finished, this, &ReplayHelper::onReplaysFetched); } QJsonArray ReplayHelper::replays() { return m_replays; } void ReplayHelper::fetchReplays() { QUrl url("http://localhost:8080/replays"); QNetworkRequest request(url); // SSL-Konfiguration ohne Überprüfung des Zertifikats QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration(); sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone); request.setSslConfiguration(sslConfig); m_manager.get(request); } void ReplayHelper::onReplaysFetched(QNetworkReply * reply) { if(reply->error() != QNetworkReply::NoError) { qWarning() << "Fehler beim Abrufen der Replays"; reply->deleteLater(); return; } QByteArray responseData = reply->readAll(); QJsonDocument jsonDoc = QJsonDocument::fromJson(responseData); m_replays = QJsonArray(); for(int i = 0; i < jsonDoc.array().size(); i++) { m_replays.append(jsonDoc.array()[i]); } emit replaysFetched(m_replays); emit replaysChanged(); } void ReplayHelper::createReplay(QString name) { QNetworkRequest request; request.setUrl(QUrl("http://localhost:8080/replays")); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); // SSL-Konfiguration ohne Überprüfung des Zertifikats QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration(); sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone); request.setSslConfiguration(sslConfig); QJsonObject obj; obj["name"] = name; obj["created_by"] = 1; QJsonDocument jsonDoc(obj); QByteArray jsonData = jsonDoc.toJson(); QNetworkAccessManager *manager = new QNetworkAccessManager(this); QNetworkReply *reply = manager->post(request, jsonData); connect(reply, &QNetworkReply::finished, [reply, this] { if (reply->error() == QNetworkReply::NoError) { QByteArray response = reply->readAll(); emit replayCreated(); fetchReplays(); // Lädt die aktualisierte Liste erneut } else { qDebug() << "Error sending Replay:" << reply->errorString(); } reply->deleteLater(); }); emit replayCreated(); } void ReplayHelper::deleteReplay(QString replayId) { QNetworkRequest request; request.setUrl(QUrl("http://localhost:8080/replays/delete?replayId=" + replayId)); QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration(); sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone); request.setSslConfiguration(sslConfig); QNetworkAccessManager *manager = new QNetworkAccessManager(this); QNetworkReply *reply = manager->deleteResource(request); connect(reply, &QNetworkReply::finished, [reply, this] { if (reply->error() == QNetworkReply::NoError) { QByteArray response = reply->readAll(); fetchReplays(); } else { qDebug() << "Error sending Replay:" << reply->errorString(); } reply->deleteLater(); }); }