Current items can be deleted by passing the UUID to the deleteItemFromServer signal.

This commit is contained in:
2026-02-02 16:15:20 +01:00
parent 63fe96fb2e
commit db1ecbece0
5 changed files with 39 additions and 2 deletions

View File

@ -168,6 +168,14 @@ void GenericCore::onPostRequestFailure(const QString errorString) {
emit displayStatusMessage(QString("Error: %1").arg(errorString));
}
void GenericCore::onDeleteRequestSuccessful(const QByteArray responseData) {
qWarning() << "TODO: Process success response!!!";
}
void GenericCore::onDeleteRequestFailure(const QString errorString) {
qWarning() << "TODO: Process error response!!!";
}
void GenericCore::setupModels() {
m_mainModel = make_shared<TableModel>(m_modelUndoStack, this);
m_sortFilterModel = make_shared<GeneralSortFilterModel>(m_mainModel);
@ -231,6 +239,8 @@ void GenericCore::setupServerConfiguration() {
connect(this, &GenericCore::fetchItemsFromServer, m_serverCommunicator.get(),
&ServerCommunicator::fetchItems);
connect(this, &GenericCore::postItemToServer, this, &GenericCore::onSendItemTriggered);
connect(this, &GenericCore::deleteItemFromServer, m_serverCommunicator.get(),
&ServerCommunicator::deleteItem);
/// response connections
connect(m_serverCommunicator.get(), &ServerCommunicator::itemsFetched, this,
@ -241,6 +251,10 @@ void GenericCore::setupServerConfiguration() {
&GenericCore::onPostRequestSuccessful);
connect(m_serverCommunicator.get(), &ServerCommunicator::postRequestFailure, this,
&GenericCore::onPostRequestFailure);
connect(m_serverCommunicator.get(), &ServerCommunicator::deleteRequestSuccessful, this,
&GenericCore::onDeleteRequestSuccessful);
connect(m_serverCommunicator.get(), &ServerCommunicator::deleteRequestFailure, this,
&GenericCore::onDeleteRequestFailure);
/// fetching/posting items on startup to test the communication with the server
// m_serverCommunicator->fetchItems();

View File

@ -41,11 +41,14 @@ class GenericCore : public QObject {
void onItemsFetchFailure(const QString errorString);
void onPostRequestSuccessful(const QByteArray responseData);
void onPostRequestFailure(const QString errorString);
void onDeleteRequestSuccessful(const QByteArray responseData);
void onDeleteRequestFailure(const QString errorString);
signals:
void displayStatusMessage(QString message);
void fetchItemsFromServer();
void postItemToServer(const QByteArray& jsonData);
void deleteItemFromServer(const QString& id);
private:
QUndoStack* m_modelUndoStack;

View File

@ -202,7 +202,6 @@ QString TableModel::updateItemsFromJson(const QByteArray& jsonData) {
QMap<int, QVariant> roles = valueList.first();
setItemData(foundIndex, roles);
/// return status what happened in this function (i. e. "Created x items, updated y items.")
// return data(foundIndex, ToStringRole).toString();
return QString("Item found at row %1.").arg(foundIndex.row());
}
}

View File

@ -77,3 +77,22 @@ void ServerCommunicator::postItems(const QByteArray& jsonData) {
reply->deleteLater();
});
}
void ServerCommunicator::deleteItem(const QString& id) {
const QString deleteRoute = QString("%1/%2").arg(ROUTE_ITEMS, id);
QNetworkReply* reply = m_restManager->deleteResource(m_serviceApi->createRequest(deleteRoute));
QObject::connect(reply, &QNetworkReply::finished, [=]() {
if (reply->error() == QNetworkReply::NoError) {
QByteArray responseData = reply->readAll();
const QString message = QString("DELETE successful! Response: %1").arg(responseData);
qInfo() << message;
emit deleteRequestSuccessful(responseData);
} else {
const QString message = QString("Error: %1").arg(reply->errorString());
qDebug() << message;
emit deleteRequestFailure(message);
}
reply->deleteLater();
});
}

View File

@ -19,7 +19,7 @@ class ServerCommunicator : public QObject {
public slots:
void fetchItems();
void postItems(const QByteArray& jsonData);
// NEXT void deleteItems(QList<QString> idList)
void deleteItem(const QString& id);
signals:
void urlChanged();
@ -28,6 +28,8 @@ class ServerCommunicator : public QObject {
void itemsFetchFailure(const QString errorString);
void postRequestSuccessful(const QByteArray responseData);
void postRequestFailure(const QString errorString);
void deleteRequestSuccessful(const QByteArray responseData);
void deleteRequestFailure(const QString errorString);
private:
QNetworkAccessManager m_netManager;