Deprecate Actions/Events/States namespaces
This commit is contained in:
parent
0e7edd5abd
commit
5be6e6e19d
@ -67,21 +67,21 @@ ActionHandler::ActionHandler(QObject *parent) :
|
|||||||
params.insert("o:params", objectRef<ParamList>());
|
params.insert("o:params", objectRef<ParamList>());
|
||||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
returns.insert("o:displayMessage", enumValueName(String));
|
returns.insert("o:displayMessage", enumValueName(String));
|
||||||
registerMethod("ExecuteAction", description, params, returns);
|
registerMethod("ExecuteAction", description, params, returns, "Please use Devices.ExecuteAction instead.");
|
||||||
|
|
||||||
params.clear(); returns.clear();
|
params.clear(); returns.clear();
|
||||||
description = "Get the ActionType for the given ActionTypeId";
|
description = "Get the ActionType for the given ActionTypeId.";
|
||||||
params.insert("actionTypeId", enumValueName(Uuid));
|
params.insert("actionTypeId", enumValueName(Uuid));
|
||||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
returns.insert("o:actionType", objectRef<ActionType>());
|
returns.insert("o:actionType", objectRef<ActionType>());
|
||||||
registerMethod("GetActionType", description, params, returns);
|
registerMethod("GetActionType", description, params, returns, "Please use the Devices namespace instead.");
|
||||||
|
|
||||||
params.clear(); returns.clear();
|
params.clear(); returns.clear();
|
||||||
description = "Execute the item identified by itemId on the given device.";
|
description = "Execute the item identified by itemId on the given device.";
|
||||||
params.insert("deviceId", enumValueName(Uuid));
|
params.insert("deviceId", enumValueName(Uuid));
|
||||||
params.insert("itemId", enumValueName(String));
|
params.insert("itemId", enumValueName(String));
|
||||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
registerMethod("ExecuteBrowserItem", description, params, returns);
|
registerMethod("ExecuteBrowserItem", description, params, returns, "Please use Devices.ExecuteBrowserItem instead.");
|
||||||
|
|
||||||
params.clear(); returns.clear();
|
params.clear(); returns.clear();
|
||||||
description = "Execute the action for the browser item identified by actionTypeId and the itemId on the given device.";
|
description = "Execute the action for the browser item identified by actionTypeId and the itemId on the given device.";
|
||||||
@ -90,7 +90,7 @@ ActionHandler::ActionHandler(QObject *parent) :
|
|||||||
params.insert("actionTypeId", enumValueName(Uuid));
|
params.insert("actionTypeId", enumValueName(Uuid));
|
||||||
params.insert("o:params", objectRef<ParamList>());
|
params.insert("o:params", objectRef<ParamList>());
|
||||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
registerMethod("ExecuteBrowserItemAction", description, params, returns);
|
registerMethod("ExecuteBrowserItemAction", description, params, returns, "Please use Devices.ExecuteBrowserItem instead.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -97,6 +97,8 @@ DeviceHandler::DeviceHandler(QObject *parent) :
|
|||||||
registerObject<ActionType, ActionTypes>();
|
registerObject<ActionType, ActionTypes>();
|
||||||
registerObject<DeviceClass, DeviceClasses>();
|
registerObject<DeviceClass, DeviceClasses>();
|
||||||
registerObject<DeviceDescriptor, DeviceDescriptors>();
|
registerObject<DeviceDescriptor, DeviceDescriptors>();
|
||||||
|
registerObject<Event>();
|
||||||
|
registerObject<Action>();
|
||||||
registerObject<State, States>();
|
registerObject<State, States>();
|
||||||
registerUncreatableObject<Device, Devices>();
|
registerUncreatableObject<Device, Devices>();
|
||||||
|
|
||||||
@ -319,6 +321,31 @@ DeviceHandler::DeviceHandler(QObject *parent) :
|
|||||||
returns.insert("o:item", objectRef("BrowserItem"));
|
returns.insert("o:item", objectRef("BrowserItem"));
|
||||||
registerMethod("GetBrowserItem", description, params, returns);
|
registerMethod("GetBrowserItem", description, params, returns);
|
||||||
|
|
||||||
|
params.clear(); returns.clear();
|
||||||
|
description = "Execute a single action.";
|
||||||
|
params.insert("actionTypeId", enumValueName(Uuid));
|
||||||
|
params.insert("deviceId", enumValueName(Uuid));
|
||||||
|
params.insert("o:params", objectRef<ParamList>());
|
||||||
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
|
returns.insert("o:displayMessage", enumValueName(String));
|
||||||
|
registerMethod("ExecuteAction", description, params, returns);
|
||||||
|
|
||||||
|
params.clear(); returns.clear();
|
||||||
|
description = "Execute the item identified by itemId on the given device.";
|
||||||
|
params.insert("deviceId", enumValueName(Uuid));
|
||||||
|
params.insert("itemId", enumValueName(String));
|
||||||
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
|
registerMethod("ExecuteBrowserItem", description, params, returns);
|
||||||
|
|
||||||
|
params.clear(); returns.clear();
|
||||||
|
description = "Execute the action for the browser item identified by actionTypeId and the itemId on the given device.";
|
||||||
|
params.insert("deviceId", enumValueName(Uuid));
|
||||||
|
params.insert("itemId", enumValueName(String));
|
||||||
|
params.insert("actionTypeId", enumValueName(Uuid));
|
||||||
|
params.insert("o:params", objectRef<ParamList>());
|
||||||
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
|
registerMethod("ExecuteBrowserItemAction", description, params, returns);
|
||||||
|
|
||||||
// Notifications
|
// Notifications
|
||||||
params.clear(); returns.clear();
|
params.clear(); returns.clear();
|
||||||
description = "Emitted whenever a State of a device changes.";
|
description = "Emitted whenever a State of a device changes.";
|
||||||
@ -355,6 +382,16 @@ DeviceHandler::DeviceHandler(QObject *parent) :
|
|||||||
params.insert("configuration", objectRef<ParamList>());
|
params.insert("configuration", objectRef<ParamList>());
|
||||||
registerNotification("PluginConfigurationChanged", description, params);
|
registerNotification("PluginConfigurationChanged", description, params);
|
||||||
|
|
||||||
|
params.clear(); returns.clear();
|
||||||
|
description = "Emitted whenever an Event is triggered.";
|
||||||
|
params.insert("event", objectRef<Event>());
|
||||||
|
registerNotification("EventTriggered", description, params, "Please use Devices.EventTriggered instead.");
|
||||||
|
connect(NymeaCore::instance(), &NymeaCore::eventTriggered, this, [this](const Event &event){
|
||||||
|
QVariantMap params;
|
||||||
|
params.insert("event", pack(event));
|
||||||
|
emit EventTriggered(params);
|
||||||
|
});
|
||||||
|
|
||||||
connect(NymeaCore::instance(), &NymeaCore::pluginConfigChanged, this, &DeviceHandler::pluginConfigChanged);
|
connect(NymeaCore::instance(), &NymeaCore::pluginConfigChanged, this, &DeviceHandler::pluginConfigChanged);
|
||||||
connect(NymeaCore::instance(), &NymeaCore::deviceStateChanged, this, &DeviceHandler::deviceStateChanged);
|
connect(NymeaCore::instance(), &NymeaCore::deviceStateChanged, this, &DeviceHandler::deviceStateChanged);
|
||||||
connect(NymeaCore::instance(), &NymeaCore::deviceRemoved, this, &DeviceHandler::deviceRemovedNotification);
|
connect(NymeaCore::instance(), &NymeaCore::deviceRemoved, this, &DeviceHandler::deviceRemovedNotification);
|
||||||
@ -801,6 +838,72 @@ JsonReply *DeviceHandler::GetBrowserItem(const QVariantMap ¶ms) const
|
|||||||
return jsonReply;
|
return jsonReply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JsonReply *DeviceHandler::ExecuteAction(const QVariantMap ¶ms)
|
||||||
|
{
|
||||||
|
DeviceId deviceId(params.value("deviceId").toString());
|
||||||
|
ActionTypeId actionTypeId(params.value("actionTypeId").toString());
|
||||||
|
ParamList actionParams = unpack<ParamList>(params.value("params"));
|
||||||
|
QLocale locale = params.value("locale").toLocale();
|
||||||
|
|
||||||
|
Action action(actionTypeId, deviceId);
|
||||||
|
action.setParams(actionParams);
|
||||||
|
|
||||||
|
JsonReply *jsonReply = createAsyncReply("ExecuteAction");
|
||||||
|
|
||||||
|
DeviceActionInfo *info = NymeaCore::instance()->executeAction(action);
|
||||||
|
connect(info, &DeviceActionInfo::finished, jsonReply, [info, jsonReply, locale](){
|
||||||
|
QVariantMap data;
|
||||||
|
data.insert("deviceError", enumValueName(info->status()));
|
||||||
|
if (!info->displayMessage().isEmpty()) {
|
||||||
|
data.insert("displayMessage", info->translatedDisplayMessage(locale));
|
||||||
|
}
|
||||||
|
jsonReply->setData(data);
|
||||||
|
jsonReply->finished();
|
||||||
|
});
|
||||||
|
|
||||||
|
return jsonReply;
|
||||||
|
}
|
||||||
|
|
||||||
|
JsonReply *DeviceHandler::ExecuteBrowserItem(const QVariantMap ¶ms)
|
||||||
|
{
|
||||||
|
DeviceId deviceId = DeviceId(params.value("deviceId").toString());
|
||||||
|
QString itemId = params.value("itemId").toString();
|
||||||
|
BrowserAction action(deviceId, itemId);
|
||||||
|
|
||||||
|
JsonReply *jsonReply = createAsyncReply("ExecuteBrowserItem");
|
||||||
|
|
||||||
|
BrowserActionInfo *info = NymeaCore::instance()->executeBrowserItem(action);
|
||||||
|
connect(info, &BrowserActionInfo::finished, jsonReply, [info, jsonReply](){
|
||||||
|
QVariantMap data;
|
||||||
|
data.insert("deviceError", enumValueName<Device::DeviceError>(info->status()));
|
||||||
|
jsonReply->setData(data);
|
||||||
|
jsonReply->finished();
|
||||||
|
});
|
||||||
|
|
||||||
|
return jsonReply;
|
||||||
|
}
|
||||||
|
|
||||||
|
JsonReply *DeviceHandler::ExecuteBrowserItemAction(const QVariantMap ¶ms)
|
||||||
|
{
|
||||||
|
DeviceId deviceId = DeviceId(params.value("deviceId").toString());
|
||||||
|
QString itemId = params.value("itemId").toString();
|
||||||
|
ActionTypeId actionTypeId = ActionTypeId(params.value("actionTypeId").toString());
|
||||||
|
ParamList paramList = unpack<ParamList>(params.value("params"));
|
||||||
|
BrowserItemAction browserItemAction(deviceId, itemId, actionTypeId, paramList);
|
||||||
|
|
||||||
|
JsonReply *jsonReply = createAsyncReply("ExecuteBrowserItemAction");
|
||||||
|
|
||||||
|
BrowserItemActionInfo *info = NymeaCore::instance()->executeBrowserItemAction(browserItemAction);
|
||||||
|
connect(info, &BrowserItemActionInfo::finished, jsonReply, [info, jsonReply](){
|
||||||
|
QVariantMap data;
|
||||||
|
data.insert("deviceError", enumValueName<Device::DeviceError>(info->status()));
|
||||||
|
jsonReply->setData(data);
|
||||||
|
jsonReply->finished();
|
||||||
|
});
|
||||||
|
|
||||||
|
return jsonReply;
|
||||||
|
}
|
||||||
|
|
||||||
QVariantMap DeviceHandler::packBrowserItem(const BrowserItem &item)
|
QVariantMap DeviceHandler::packBrowserItem(const BrowserItem &item)
|
||||||
{
|
{
|
||||||
QVariantMap ret;
|
QVariantMap ret;
|
||||||
|
|||||||
@ -60,6 +60,10 @@ public:
|
|||||||
Q_INVOKABLE JsonReply *BrowseDevice(const QVariantMap ¶ms) const;
|
Q_INVOKABLE JsonReply *BrowseDevice(const QVariantMap ¶ms) const;
|
||||||
Q_INVOKABLE JsonReply *GetBrowserItem(const QVariantMap ¶ms) const;
|
Q_INVOKABLE JsonReply *GetBrowserItem(const QVariantMap ¶ms) const;
|
||||||
|
|
||||||
|
Q_INVOKABLE JsonReply *ExecuteAction(const QVariantMap ¶ms);
|
||||||
|
Q_INVOKABLE JsonReply *ExecuteBrowserItem(const QVariantMap ¶ms);
|
||||||
|
Q_INVOKABLE JsonReply *ExecuteBrowserItemAction(const QVariantMap ¶ms);
|
||||||
|
|
||||||
static QVariantMap packBrowserItem(const BrowserItem &item);
|
static QVariantMap packBrowserItem(const BrowserItem &item);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@ -69,6 +73,7 @@ signals:
|
|||||||
void DeviceAdded(const QVariantMap ¶ms);
|
void DeviceAdded(const QVariantMap ¶ms);
|
||||||
void DeviceChanged(const QVariantMap ¶ms);
|
void DeviceChanged(const QVariantMap ¶ms);
|
||||||
void DeviceSettingChanged(const QVariantMap ¶ms);
|
void DeviceSettingChanged(const QVariantMap ¶ms);
|
||||||
|
void EventTriggered(const QVariantMap ¶ms);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void pluginConfigChanged(const PluginId &id, const ParamList &config);
|
void pluginConfigChanged(const PluginId &id, const ParamList &config);
|
||||||
|
|||||||
@ -61,13 +61,13 @@ EventHandler::EventHandler(QObject *parent) :
|
|||||||
params.insert("eventTypeId", enumValueName(Uuid));
|
params.insert("eventTypeId", enumValueName(Uuid));
|
||||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
returns.insert("o:eventType", objectRef<EventType>());
|
returns.insert("o:eventType", objectRef<EventType>());
|
||||||
registerMethod("GetEventType", description, params, returns);
|
registerMethod("GetEventType", description, params, returns, "Please use the Devices namespace instead.");
|
||||||
|
|
||||||
// Notifications
|
// Notifications
|
||||||
params.clear(); returns.clear();
|
params.clear(); returns.clear();
|
||||||
description = "Emitted whenever an Event is triggered.";
|
description = "Emitted whenever an Event is triggered.";
|
||||||
params.insert("event", objectRef<Event>());
|
params.insert("event", objectRef<Event>());
|
||||||
registerNotification("EventTriggered", description, params);
|
registerNotification("EventTriggered", description, params, "Please use Devices.EventTriggered instead.");
|
||||||
connect(NymeaCore::instance(), &NymeaCore::eventTriggered, this, &EventHandler::eventTriggered);
|
connect(NymeaCore::instance(), &NymeaCore::eventTriggered, this, &EventHandler::eventTriggered);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ StateHandler::StateHandler(QObject *parent) :
|
|||||||
params.insert("stateTypeId", enumValueName(Uuid));
|
params.insert("stateTypeId", enumValueName(Uuid));
|
||||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||||
returns.insert("o:stateType", objectRef<StateType>());
|
returns.insert("o:stateType", objectRef<StateType>());
|
||||||
registerMethod("GetStateType", description, params, returns, true);
|
registerMethod("GetStateType", description, params, returns, "Please use the Devices namespace instead.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! Returns the name of the \l{StateHandler}. In this case \b States.*/
|
/*! Returns the name of the \l{StateHandler}. In this case \b States.*/
|
||||||
|
|||||||
@ -125,23 +125,27 @@ void JsonHandler::registerObject(const QString &name, const QVariantMap &object)
|
|||||||
m_objects.insert(name, object);
|
m_objects.insert(name, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JsonHandler::registerMethod(const QString &name, const QString &description, const QVariantMap ¶ms, const QVariantMap &returns, bool /*deprecated*/)
|
void JsonHandler::registerMethod(const QString &name, const QString &description, const QVariantMap ¶ms, const QVariantMap &returns, const QString &deprecationInfo)
|
||||||
{
|
{
|
||||||
QVariantMap methodData;
|
QVariantMap methodData;
|
||||||
methodData.insert("description", description);
|
methodData.insert("description", description);
|
||||||
methodData.insert("params", params);
|
methodData.insert("params", params);
|
||||||
methodData.insert("returns", returns);
|
methodData.insert("returns", returns);
|
||||||
// methodData.insert("deprecated", deprecated);
|
if (!deprecationInfo.isEmpty()) {
|
||||||
|
methodData.insert("deprecated", deprecationInfo);
|
||||||
|
}
|
||||||
|
|
||||||
m_methods.insert(name, methodData);
|
m_methods.insert(name, methodData);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JsonHandler::registerNotification(const QString &name, const QString &description, const QVariantMap ¶ms, bool /*deprecated*/)
|
void JsonHandler::registerNotification(const QString &name, const QString &description, const QVariantMap ¶ms, const QString &deprecationInfo)
|
||||||
{
|
{
|
||||||
QVariantMap notificationData;
|
QVariantMap notificationData;
|
||||||
notificationData.insert("description", description);
|
notificationData.insert("description", description);
|
||||||
notificationData.insert("params", params);
|
notificationData.insert("params", params);
|
||||||
// notificationData.insert("deprecated", deprecated);
|
if (!deprecationInfo.isEmpty()) {
|
||||||
|
notificationData.insert("deprecated", deprecationInfo);
|
||||||
|
}
|
||||||
|
|
||||||
m_notifications.insert(name, notificationData);
|
m_notifications.insert(name, notificationData);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,8 +91,8 @@ protected:
|
|||||||
void registerObject(const QString &name, const QVariantMap &object);
|
void registerObject(const QString &name, const QVariantMap &object);
|
||||||
|
|
||||||
|
|
||||||
void registerMethod(const QString &name, const QString &description, const QVariantMap ¶ms, const QVariantMap &returns, bool deprecated = false);
|
void registerMethod(const QString &name, const QString &description, const QVariantMap ¶ms, const QVariantMap &returns, const QString &deprecationInfo = QString());
|
||||||
void registerNotification(const QString &name, const QString &description, const QVariantMap ¶ms, bool deprecated = false);
|
void registerNotification(const QString &name, const QString &description, const QVariantMap ¶ms, const QString &deprecationInfo = QString());
|
||||||
|
|
||||||
JsonReply *createReply(const QVariantMap &data) const;
|
JsonReply *createReply(const QVariantMap &data) const;
|
||||||
JsonReply *createAsyncReply(const QString &method) const;
|
JsonReply *createAsyncReply(const QString &method) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user