diff options
Diffstat (limited to 'lib/csapi/device_management.cpp')
-rw-r--r-- | lib/csapi/device_management.cpp | 107 |
1 files changed, 27 insertions, 80 deletions
diff --git a/lib/csapi/device_management.cpp b/lib/csapi/device_management.cpp index 9c31db5d..eac9a545 100644 --- a/lib/csapi/device_management.cpp +++ b/lib/csapi/device_management.cpp @@ -4,114 +4,61 @@ #include "device_management.h" -#include "converters.h" - #include <QtCore/QStringBuilder> -using namespace QMatrixClient; - -static const auto basePath = QStringLiteral("/_matrix/client/r0"); - -class GetDevicesJob::Private -{ - public: - QVector<Device> devices; -}; +using namespace Quotient; QUrl GetDevicesJob::makeRequestUrl(QUrl baseUrl) { return BaseJob::makeRequestUrl(std::move(baseUrl), - basePath % "/devices"); + QStringLiteral("/_matrix/client/r0") + % "/devices"); } -static const auto GetDevicesJobName = QStringLiteral("GetDevicesJob"); - GetDevicesJob::GetDevicesJob() - : BaseJob(HttpVerb::Get, GetDevicesJobName, - basePath % "/devices") - , d(new Private) -{ -} - -GetDevicesJob::~GetDevicesJob() = default; - -const QVector<Device>& GetDevicesJob::devices() const -{ - return d->devices; -} - -BaseJob::Status GetDevicesJob::parseJson(const QJsonDocument& data) -{ - auto json = data.object(); - fromJson(json.value("devices"_ls), d->devices); - return Success; -} - -class GetDeviceJob::Private -{ - public: - Device data; -}; + : BaseJob(HttpVerb::Get, QStringLiteral("GetDevicesJob"), + QStringLiteral("/_matrix/client/r0") % "/devices") +{} QUrl GetDeviceJob::makeRequestUrl(QUrl baseUrl, const QString& deviceId) { return BaseJob::makeRequestUrl(std::move(baseUrl), - basePath % "/devices/" % deviceId); + QStringLiteral("/_matrix/client/r0") + % "/devices/" % deviceId); } -static const auto GetDeviceJobName = QStringLiteral("GetDeviceJob"); - GetDeviceJob::GetDeviceJob(const QString& deviceId) - : BaseJob(HttpVerb::Get, GetDeviceJobName, - basePath % "/devices/" % deviceId) - , d(new Private) -{ -} - -GetDeviceJob::~GetDeviceJob() = default; - -const Device& GetDeviceJob::data() const -{ - return d->data; -} - -BaseJob::Status GetDeviceJob::parseJson(const QJsonDocument& data) -{ - fromJson(data, d->data); - return Success; -} - -static const auto UpdateDeviceJobName = QStringLiteral("UpdateDeviceJob"); - -UpdateDeviceJob::UpdateDeviceJob(const QString& deviceId, const QString& displayName) - : BaseJob(HttpVerb::Put, UpdateDeviceJobName, - basePath % "/devices/" % deviceId) + : BaseJob(HttpVerb::Get, QStringLiteral("GetDeviceJob"), + QStringLiteral("/_matrix/client/r0") % "/devices/" % deviceId) +{} + +UpdateDeviceJob::UpdateDeviceJob(const QString& deviceId, + const QString& displayName) + : BaseJob(HttpVerb::Put, QStringLiteral("UpdateDeviceJob"), + QStringLiteral("/_matrix/client/r0") % "/devices/" % deviceId) { QJsonObject _data; addParam<IfNotEmpty>(_data, QStringLiteral("display_name"), displayName); - setRequestData(_data); + setRequestData(std::move(_data)); } -static const auto DeleteDeviceJobName = QStringLiteral("DeleteDeviceJob"); - -DeleteDeviceJob::DeleteDeviceJob(const QString& deviceId, const Omittable<AuthenticationData>& auth) - : BaseJob(HttpVerb::Delete, DeleteDeviceJobName, - basePath % "/devices/" % deviceId) +DeleteDeviceJob::DeleteDeviceJob(const QString& deviceId, + const Omittable<AuthenticationData>& auth) + : BaseJob(HttpVerb::Delete, QStringLiteral("DeleteDeviceJob"), + QStringLiteral("/_matrix/client/r0") % "/devices/" % deviceId) { QJsonObject _data; addParam<IfNotEmpty>(_data, QStringLiteral("auth"), auth); - setRequestData(_data); + setRequestData(std::move(_data)); } -static const auto DeleteDevicesJobName = QStringLiteral("DeleteDevicesJob"); - -DeleteDevicesJob::DeleteDevicesJob(const QStringList& devices, const Omittable<AuthenticationData>& auth) - : BaseJob(HttpVerb::Post, DeleteDevicesJobName, - basePath % "/delete_devices") +DeleteDevicesJob::DeleteDevicesJob(const QStringList& devices, + const Omittable<AuthenticationData>& auth) + : BaseJob(HttpVerb::Post, QStringLiteral("DeleteDevicesJob"), + QStringLiteral("/_matrix/client/r0") % "/delete_devices") { QJsonObject _data; addParam<>(_data, QStringLiteral("devices"), devices); addParam<IfNotEmpty>(_data, QStringLiteral("auth"), auth); - setRequestData(_data); + setRequestData(std::move(_data)); } - |