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>());
|
||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||
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();
|
||||
description = "Get the ActionType for the given ActionTypeId";
|
||||
description = "Get the ActionType for the given ActionTypeId.";
|
||||
params.insert("actionTypeId", enumValueName(Uuid));
|
||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||
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();
|
||||
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);
|
||||
registerMethod("ExecuteBrowserItem", description, params, returns, "Please use Devices.ExecuteBrowserItem instead.");
|
||||
|
||||
params.clear(); returns.clear();
|
||||
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("o:params", objectRef<ParamList>());
|
||||
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<DeviceClass, DeviceClasses>();
|
||||
registerObject<DeviceDescriptor, DeviceDescriptors>();
|
||||
registerObject<Event>();
|
||||
registerObject<Action>();
|
||||
registerObject<State, States>();
|
||||
registerUncreatableObject<Device, Devices>();
|
||||
|
||||
@ -319,6 +321,31 @@ DeviceHandler::DeviceHandler(QObject *parent) :
|
||||
returns.insert("o:item", objectRef("BrowserItem"));
|
||||
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
|
||||
params.clear(); returns.clear();
|
||||
description = "Emitted whenever a State of a device changes.";
|
||||
@ -355,6 +382,16 @@ DeviceHandler::DeviceHandler(QObject *parent) :
|
||||
params.insert("configuration", objectRef<ParamList>());
|
||||
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::deviceStateChanged, this, &DeviceHandler::deviceStateChanged);
|
||||
connect(NymeaCore::instance(), &NymeaCore::deviceRemoved, this, &DeviceHandler::deviceRemovedNotification);
|
||||
@ -801,6 +838,72 @@ JsonReply *DeviceHandler::GetBrowserItem(const QVariantMap ¶ms) const
|
||||
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 ret;
|
||||
|
||||
@ -60,6 +60,10 @@ public:
|
||||
Q_INVOKABLE JsonReply *BrowseDevice(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);
|
||||
|
||||
signals:
|
||||
@ -69,6 +73,7 @@ signals:
|
||||
void DeviceAdded(const QVariantMap ¶ms);
|
||||
void DeviceChanged(const QVariantMap ¶ms);
|
||||
void DeviceSettingChanged(const QVariantMap ¶ms);
|
||||
void EventTriggered(const QVariantMap ¶ms);
|
||||
|
||||
private slots:
|
||||
void pluginConfigChanged(const PluginId &id, const ParamList &config);
|
||||
|
||||
@ -61,13 +61,13 @@ EventHandler::EventHandler(QObject *parent) :
|
||||
params.insert("eventTypeId", enumValueName(Uuid));
|
||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||
returns.insert("o:eventType", objectRef<EventType>());
|
||||
registerMethod("GetEventType", description, params, returns);
|
||||
registerMethod("GetEventType", description, params, returns, "Please use the Devices namespace instead.");
|
||||
|
||||
// Notifications
|
||||
params.clear(); returns.clear();
|
||||
description = "Emitted whenever an Event is triggered.";
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@ -52,7 +52,7 @@ StateHandler::StateHandler(QObject *parent) :
|
||||
params.insert("stateTypeId", enumValueName(Uuid));
|
||||
returns.insert("deviceError", enumRef<Device::DeviceError>());
|
||||
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.*/
|
||||
|
||||
@ -125,23 +125,27 @@ void JsonHandler::registerObject(const QString &name, const QVariantMap &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;
|
||||
methodData.insert("description", description);
|
||||
methodData.insert("params", params);
|
||||
methodData.insert("returns", returns);
|
||||
// methodData.insert("deprecated", deprecated);
|
||||
if (!deprecationInfo.isEmpty()) {
|
||||
methodData.insert("deprecated", deprecationInfo);
|
||||
}
|
||||
|
||||
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;
|
||||
notificationData.insert("description", description);
|
||||
notificationData.insert("params", params);
|
||||
// notificationData.insert("deprecated", deprecated);
|
||||
if (!deprecationInfo.isEmpty()) {
|
||||
notificationData.insert("deprecated", deprecationInfo);
|
||||
}
|
||||
|
||||
m_notifications.insert(name, notificationData);
|
||||
}
|
||||
|
||||
@ -91,8 +91,8 @@ protected:
|
||||
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 registerNotification(const QString &name, const QString &description, const QVariantMap ¶ms, 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, const QString &deprecationInfo = QString());
|
||||
|
||||
JsonReply *createReply(const QVariantMap &data) const;
|
||||
JsonReply *createAsyncReply(const QString &method) const;
|
||||
|
||||
Reference in New Issue
Block a user