MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / validate

Method validate

app/src/API/Handlers/ProjectHandler.cpp:5802–5838  ·  view source on GitHub ↗

* @brief Walks the project model, reports inconsistencies. */

Source from the content-addressed store, hash-verified

5800 * @brief Walks the project model, reports inconsistencies.
5801 */
5802API::CommandResponse API::Handlers::ProjectHandler::validate(const QString& id,
5803 const QJsonObject& params)
5804{
5805 Q_UNUSED(params)
5806
5807 const auto& project = DataModel::ProjectModel::instance();
5808 const auto& groups = project.groups();
5809 const auto& sources = project.sources();
5810 const auto& actions = project.actions();
5811
5812 QJsonArray issues;
5813 bool ok = true;
5814
5815 QSet<int> sourceIds;
5816 for (const auto& src : sources)
5817 sourceIds.insert(src.sourceId);
5818
5819 if (groups.empty()) {
5820 addIssue(issues,
5821 QStringLiteral("warning"),
5822 QStringLiteral("project"),
5823 QStringLiteral("Project has no groups; no data will be visualized"));
5824 }
5825
5826 validateSources(sources, issues, ok);
5827 validateGroups(groups, sourceIds, issues, ok);
5828 validateActions(actions, issues);
5829
5830 QJsonObject result;
5831 result[QStringLiteral("ok")] = ok;
5832 result[QStringLiteral("issues")] = issues;
5833 result[QStringLiteral("groupCount")] = static_cast<int>(groups.size());
5834 result[QStringLiteral("sourceCount")] = static_cast<int>(sources.size());
5835 result[QStringLiteral("actionCount")] = static_cast<int>(actions.size());
5836 result[QStringLiteral("issueCount")] = issues.size();
5837 return CommandResponse::makeSuccess(id, result);
5838}
5839
5840//--------------------------------------------------------------------------------------------------
5841// Script dry-run helpers (compile + run in throwaway engines, never touch project)

Callers

nothing calls this directly

Calls 7

addIssueFunction · 0.85
validateSourcesFunction · 0.85
validateGroupsFunction · 0.85
validateActionsFunction · 0.85
actionsMethod · 0.80
emptyMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected