add getconfigureddevices json api
This commit is contained in:
parent
514323ce5d
commit
0faa329df9
@ -5,6 +5,7 @@
|
||||
#include "hivecore.h"
|
||||
#include "devicemanager.h"
|
||||
#include "deviceclass.h"
|
||||
#include "device.h"
|
||||
|
||||
#include <QJsonDocument>
|
||||
#include <QStringList>
|
||||
@ -51,7 +52,6 @@ void JsonRPCServer::processData(int clientId, const QByteArray &jsonData)
|
||||
|
||||
if (targetNamspace == "Devices") {
|
||||
if (method == "GetSupportedDevices") {
|
||||
qDebug() << "getSupportedDevices";
|
||||
QVariantMap params;
|
||||
QVariantList supportedDeviceList;
|
||||
foreach (const DeviceClass &deviceClass, HiveCore::instance()->deviceManager()->supportedDevices()) {
|
||||
@ -74,6 +74,14 @@ void JsonRPCServer::processData(int clientId, const QByteArray &jsonData)
|
||||
sendErrorResponse(clientId, commandId, "Error creating device. Missing parameter.");
|
||||
break;
|
||||
}
|
||||
} else if (method == "GetConfiguredDevices") {
|
||||
QVariantMap params;
|
||||
QVariantList configuredDeviceList;
|
||||
foreach (Device *device, HiveCore::instance()->deviceManager()->configuredDevices()) {
|
||||
configuredDeviceList.append(packDevice(device));
|
||||
}
|
||||
params.insert("devices", configuredDeviceList);
|
||||
sendResponse(clientId, commandId, params);
|
||||
} else {
|
||||
sendErrorResponse(clientId, commandId, "No such method");
|
||||
}
|
||||
@ -101,6 +109,20 @@ QVariantMap JsonRPCServer::packDeviceClass(const DeviceClass &deviceClass)
|
||||
return variant;
|
||||
}
|
||||
|
||||
QVariantMap JsonRPCServer::packDevice(Device *device)
|
||||
{
|
||||
QVariantMap variant;
|
||||
variant.insert("id", device->id());
|
||||
variant.insert("deviceClassId", device->deviceClassId());
|
||||
variant.insert("name", device->name());
|
||||
QVariantList triggers;
|
||||
foreach (const Trigger &trigger, device->triggers()) {
|
||||
triggers.append(trigger.id());
|
||||
}
|
||||
variant.insert("triggers", triggers);
|
||||
return variant;
|
||||
}
|
||||
|
||||
void JsonRPCServer::sendResponse(int clientId, int commandId, const QVariantMap ¶ms)
|
||||
{
|
||||
QVariantMap rsp;
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#include <QString>
|
||||
|
||||
class TcpServer;
|
||||
class Device;
|
||||
|
||||
class JsonRPCServer: public QObject
|
||||
{
|
||||
@ -23,6 +24,7 @@ private slots:
|
||||
|
||||
private:
|
||||
QVariantMap packDeviceClass(const DeviceClass &deviceClass);
|
||||
QVariantMap packDevice(Device *device);
|
||||
|
||||
void sendResponse(int clientId, int commandId, const QVariantMap ¶ms = QVariantMap());
|
||||
void sendErrorResponse(int clientId, int commandId, const QString &error);
|
||||
|
||||
Reference in New Issue
Block a user