| 228 | } |
| 229 | |
| 230 | void Surface::updateDataModel(const nlohmann::json& dataModelData) { |
| 231 | if (_dataModel == nullptr) { |
| 232 | return; |
| 233 | } |
| 234 | AGENUI_PERFORMANCE_LOG("surface_updateDataModel_begin", "%s", _surfaceId.c_str()); |
| 235 | BatchScope batchScope(_virtualDom->batchGuard()); |
| 236 | |
| 237 | if (!dataModelData.contains("path") && !dataModelData.contains("value")) { |
| 238 | _dataModel->updateData("/", dataModelData.dump()); |
| 239 | return; |
| 240 | } |
| 241 | |
| 242 | std::string path = dataModelData.contains("path") ? dataModelData["path"].get<std::string>() : "/"; |
| 243 | |
| 244 | if (!dataModelData.contains("value")) { |
| 245 | return; |
| 246 | } |
| 247 | |
| 248 | const auto& value = dataModelData["value"]; |
| 249 | std::string valueStr; |
| 250 | valueStr = value.dump(); |
| 251 | _dataModel->updateData(path, valueStr); |
| 252 | |
| 253 | AGENUI_PERFORMANCE_LOG("surface_updateDataModel_end", "%s", _surfaceId.c_str()); |
| 254 | } |
| 255 | |
| 256 | void Surface::appendDataModel(const nlohmann::json& dataModelData) { |
| 257 | if (_dataModel == nullptr) { |
no test coverage detected