diff --git a/CMakeLists.txt b/CMakeLists.txt
index dc1a28cc..e01340ff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -147,7 +147,6 @@ set(SRC_FILES
src/CommunitiesListItem.cc
src/CommunitiesList.cc
src/Community.cc
- src/Deserializable.cc
src/InviteeItem.cc
src/LoginPage.cc
src/MainWindow.cc
diff --git a/include/Deserializable.h b/include/Deserializable.h
deleted file mode 100644
index 0b97ce29..00000000
--- a/include/Deserializable.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include <exception>
-
-#include <QJsonDocument>
-#include <QJsonObject>
-
-class DeserializationException : public std::exception
-{
-public:
- explicit DeserializationException(const std::string &msg);
- virtual const char *what() const noexcept;
-
-private:
- std::string msg_;
-};
-
-// JSON response structs need to implement the interface.
-class Deserializable
-{
-public:
- virtual void deserialize(const QJsonValue &) {}
- virtual void deserialize(const QJsonObject &) {}
- virtual void deserialize(const QJsonDocument &) {}
- virtual ~Deserializable() {}
-};
-
-class Serializable
-{
-public:
- virtual QJsonObject serialize() const = 0;
- virtual ~Serializable() {}
-};
diff --git a/src/Deserializable.cc b/src/Deserializable.cc
deleted file mode 100644
index 8bdbfc2c..00000000
--- a/src/Deserializable.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Deserializable.h"
-
-DeserializationException::DeserializationException(const std::string &msg)
- : msg_(msg)
-{}
-
-const char *
-DeserializationException::what() const noexcept
-{
- return msg_.c_str();
-}
diff --git a/src/MatrixClient.cc b/src/MatrixClient.cc
index e95f8b97..5593dbe6 100644
--- a/src/MatrixClient.cc
+++ b/src/MatrixClient.cc
@@ -31,7 +31,6 @@
#include <QtConcurrent>
#include <mtx/errors.hpp>
-#include "Deserializable.h"
#include "MatrixClient.h"
MatrixClient::MatrixClient(QString server, QObject *parent)
@@ -559,16 +558,16 @@ MatrixClient::getOwnCommunities() noexcept
auto data = reply->readAll();
auto json = QJsonDocument::fromJson(data).object();
- try {
- QList<QString> response;
+ if (!json.contains("groups")) {
+ qWarning() << "failed to parse own communities. 'groups' key not found";
+ return;
+ }
- for (auto group : json["groups"].toArray())
- response.append(group.toString());
+ QList<QString> response;
+ for (auto group : json["groups"].toArray())
+ response.append(group.toString());
- emit getOwnCommunitiesResponse(response);
- } catch (DeserializationException &e) {
- qWarning() << "Own communities:" << e.what();
- }
+ emit getOwnCommunitiesResponse(response);
});
}
|