in sdk/src/azure/iot/az_iot_hub_client_properties.c [328:361]
static az_result verify_valid_json_position(
az_json_reader* jr,
az_iot_hub_client_properties_message_type message_type,
az_span component_name)
{
// Not on a property name or end of object
if (jr->current_depth != 0
&& (jr->token.kind != AZ_JSON_TOKEN_PROPERTY_NAME
&& jr->token.kind != AZ_JSON_TOKEN_END_OBJECT))
{
return AZ_ERROR_JSON_INVALID_STATE;
}
// Component property - In user property value object
if ((message_type == AZ_IOT_HUB_CLIENT_PROPERTIES_MESSAGE_TYPE_WRITABLE_UPDATED
&& jr->current_depth > 2)
|| (message_type == AZ_IOT_HUB_CLIENT_PROPERTIES_MESSAGE_TYPE_GET_RESPONSE
&& jr->current_depth > 3))
{
return AZ_ERROR_JSON_INVALID_STATE;
}
// Non-component property - In user property value object
if ((az_span_size(component_name) == 0)
&& ((message_type == AZ_IOT_HUB_CLIENT_PROPERTIES_MESSAGE_TYPE_WRITABLE_UPDATED
&& jr->current_depth > 1)
|| (message_type == AZ_IOT_HUB_CLIENT_PROPERTIES_MESSAGE_TYPE_GET_RESPONSE
&& jr->current_depth > 2)))
{
return AZ_ERROR_JSON_INVALID_STATE;
}
return AZ_OK;
}