Add current state values to device map -> close #295
This commit is contained in:
parent
074f1a7cd2
commit
57df12aec5
@ -204,6 +204,10 @@ void JsonTypes::init()
|
||||
s_device.insert("deviceClassId", basicTypeToString(Uuid));
|
||||
s_device.insert("name", basicTypeToString(String));
|
||||
s_device.insert("params", QVariantList() << paramRef());
|
||||
QVariantMap stateValues;
|
||||
stateValues.insert("stateTypeId", basicTypeToString(Uuid));
|
||||
stateValues.insert("value", basicTypeToString(Variant));
|
||||
s_device.insert("states", QVariantList() << stateValues);
|
||||
s_device.insert("setupComplete", basicTypeToString(Bool));
|
||||
s_device.insert("o:parentId", basicTypeToString(Uuid));
|
||||
|
||||
@ -587,6 +591,7 @@ QVariantMap JsonTypes::packDevice(Device *device)
|
||||
variant.insert("parentId", device->parentId());
|
||||
|
||||
variant.insert("params", params);
|
||||
variant.insert("states", packDeviceStates(device));
|
||||
variant.insert("setupComplete", device->setupComplete());
|
||||
return variant;
|
||||
}
|
||||
@ -1198,6 +1203,12 @@ QPair<bool, QString> JsonTypes::validateVariant(const QVariant &templateVariant,
|
||||
qCWarning(dcJsonRpc) << "ruleDescription type not matching";
|
||||
return result;
|
||||
}
|
||||
} else if (refName == stateRef()) {
|
||||
QPair<bool, QString> result = validateMap(s_state, variant.toMap());
|
||||
if (!result.first) {
|
||||
qCWarning(dcJsonRpc) << "state not matching";
|
||||
return result;
|
||||
}
|
||||
} else if (refName == eventDescriptorRef()) {
|
||||
QPair<bool, QString> result = validateMap(eventDescriptorDescription(), variant.toMap());
|
||||
if (!result.first) {
|
||||
|
||||
@ -139,7 +139,7 @@ HttpReply *DevicesResource::proccessGetRequest(const HttpRequest &request, const
|
||||
|
||||
if (!m_device->hasState(stateTypeId)){
|
||||
qCWarning(dcRest) << "This device has no StateTypeId:" << urlTokens.at(5);
|
||||
return createDeviceErrorReply(HttpReply::NotFound, DeviceManager::DeviceErrorStateTypeNotFound);
|
||||
return createDeviceErrorReply(HttpReply::NotFound, DeviceManager::DeviceErrorStateTypeNotFound);
|
||||
}
|
||||
return getDeviceStateValue(m_device, stateTypeId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user