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

Method getStatus

app/src/API/Handlers/LicensingHandler.cpp:260–309  ·  view source on GitHub ↗

* @brief Get the current license activation state and customer info. */

Source from the content-addressed store, hash-verified

258 * @brief Get the current license activation state and customer info.
259 */
260API::CommandResponse API::Handlers::LicensingHandler::getStatus(const QString& id,
261 const QJsonObject&)
262{
263 const auto& ls = Licensing::LemonSqueezy::instance();
264 const auto& ol = Licensing::OfflineLicense::instance();
265 const auto& tk = Licensing::CommercialToken::current();
266
267 QString tierName;
268 switch (tk.featureTier()) {
269 case Licensing::FeatureTier::Hobbyist:
270 tierName = QStringLiteral("Hobbyist");
271 break;
272 case Licensing::FeatureTier::Trial:
273 tierName = QStringLiteral("Trial");
274 break;
275 case Licensing::FeatureTier::Pro:
276 tierName = QStringLiteral("Pro");
277 break;
278 case Licensing::FeatureTier::Enterprise:
279 tierName = QStringLiteral("Enterprise");
280 break;
281 default:
282 tierName = QStringLiteral("None");
283 break;
284 }
285
286 QJsonObject result;
287 result[QStringLiteral("busy")] = ls.busy();
288 result[QStringLiteral("isActivated")] = ls.isActivated();
289 result[QStringLiteral("canActivate")] = ls.canActivate();
290 result[QStringLiteral("appName")] = ls.appName();
291 result[QStringLiteral("license")] = ls.license();
292 result[QStringLiteral("instanceId")] = ls.instanceId();
293 result[QStringLiteral("variantName")] = ls.variantName();
294 result[QStringLiteral("instanceName")] = ls.instanceName();
295 result[QStringLiteral("customerName")] = ls.customerName();
296 result[QStringLiteral("customerEmail")] = ls.customerEmail();
297 result[QStringLiteral("seatLimit")] = ls.seatLimit();
298 result[QStringLiteral("seatUsage")] = ls.seatUsage();
299 result[QStringLiteral("featureTier")] = tierName;
300 result[QStringLiteral("featureTierValue")] = static_cast<int>(tk.featureTier());
301
302 result[QStringLiteral("machineId")] = ol.machineId();
303 result[QStringLiteral("offlineActivated")] = ol.isActivated();
304 result[QStringLiteral("offlineDaysRemaining")] = ol.daysRemaining();
305 result[QStringLiteral("offlineExpiresAt")] =
306 ol.isActivated() ? ol.expiresAt().toString(Qt::ISODate) : QString();
307
308 return CommandResponse::makeSuccess(id, result);
309}
310
311/**
312 * @brief Runs every generated license guard and reports individual pass/fail.

Callers

nothing calls this directly

Calls 7

featureTierMethod · 0.80
canActivateMethod · 0.80
seatLimitMethod · 0.80
seatUsageMethod · 0.80
busyMethod · 0.45
isActivatedMethod · 0.45
daysRemainingMethod · 0.45

Tested by

no test coverage detected