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

Method getAddonInfo

app/src/API/Handlers/ExtensionHandler.cpp:191–213  ·  view source on GitHub ↗

* @brief Returns detailed info for a specific extension by ID. */

Source from the content-addressed store, hash-verified

189 * @brief Returns detailed info for a specific extension by ID.
190 */
191API::CommandResponse API::Handlers::ExtensionHandler::getAddonInfo(const QString& id,
192 const QJsonObject& params)
193{
194 const auto extensionId = params.value("extensionId").toString();
195 if (extensionId.isEmpty())
196 return CommandResponse::makeError(
197 id, QStringLiteral("INVALID_PARAMS"), "Missing extensionId parameter");
198
199 auto& mgr = Misc::ExtensionManager::instance();
200 for (const auto& addon : mgr.extensions()) {
201 const auto map = addon.toMap();
202 if (map.value("id").toString() == extensionId) {
203 auto data = QJsonObject::fromVariantMap(map);
204 data.insert("installed", mgr.isInstalled(extensionId));
205 data.insert("updateAvailable", mgr.hasUpdate(extensionId));
206 data.insert("installedVersion", mgr.installedVersion(extensionId));
207 return CommandResponse::makeSuccess(id, data);
208 }
209 }
210
211 return CommandResponse::makeError(
212 id, QStringLiteral("NOT_FOUND"), "Extension not found: " + extensionId);
213}
214
215/**
216 * @brief Installs an extension by setting the selected index and triggering install.

Callers

nothing calls this directly

Calls 5

isEmptyMethod · 0.80
isInstalledMethod · 0.80
hasUpdateMethod · 0.80
installedVersionMethod · 0.80
valueMethod · 0.45

Tested by

no test coverage detected