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

Method get

app/src/API/Handlers/SessionsHandler.cpp:402–427  ·  view source on GitHub ↗

* @brief Return one session's metadata + tags. */

Source from the content-addressed store, hash-verified

400 * @brief Return one session's metadata + tags.
401 */
402API::CommandResponse API::Handlers::SessionsHandler::get(const QString& id,
403 const QJsonObject& params)
404{
405 if (!params.contains(QStringLiteral("sessionId")))
406 return CommandResponse::makeError(
407 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: sessionId"));
408
409 const int sessionId = params.value(QStringLiteral("sessionId")).toInt();
410 auto& db = Sessions::DatabaseManager::instance();
411 if (!db.isOpen())
412 return CommandResponse::makeError(
413 id,
414 ErrorCode::ExecutionError,
415 QStringLiteral("No database open. Call sessions.openDatabase first."));
416
417 const auto meta = db.sessionMetadata(sessionId);
418 if (meta.isEmpty())
419 return CommandResponse::makeError(
420 id, ErrorCode::InvalidParam, QStringLiteral("Session not found: %1").arg(sessionId));
421
422 QJsonObject result;
423 result[QStringLiteral("sessionId")] = sessionId;
424 result[QStringLiteral("metadata")] = QJsonObject::fromVariantMap(meta);
425 result[QStringLiteral("tags")] = QJsonArray::fromVariantList(db.tagsForSession(sessionId));
426 return CommandResponse::makeSuccess(id, result);
427}
428
429/**
430 * @brief Delete a stored session by id.

Callers

nothing calls this directly

Calls 6

sessionMetadataMethod · 0.80
isEmptyMethod · 0.80
containsMethod · 0.45
valueMethod · 0.45
isOpenMethod · 0.45
tagsForSessionMethod · 0.45

Tested by

no test coverage detected