first commit
This commit is contained in:
43
backend/app/services/capabilities.py
Normal file
43
backend/app/services/capabilities.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from app.services.catalog import MetricCatalog, get_catalog
|
||||
|
||||
|
||||
|
||||
def build_capabilities(catalog: MetricCatalog | None = None) -> dict:
|
||||
catalog = catalog or get_catalog()
|
||||
settings = catalog.settings
|
||||
|
||||
string_rows = []
|
||||
for item in settings.strings:
|
||||
metric_ids = list(item.get("metrics", {}).values())
|
||||
if any(catalog.safe_get(metric_id) for metric_id in metric_ids):
|
||||
string_rows.append(item)
|
||||
|
||||
analytics_enabled = settings.modules.get("analytics", False)
|
||||
|
||||
return {
|
||||
"modules": settings.modules,
|
||||
"strings_enabled": settings.modules.get("strings", False) and len(string_rows) > 0,
|
||||
"strings_count": len(string_rows),
|
||||
"phases_enabled": False,
|
||||
"phases_count": 0,
|
||||
"analytics_enabled": analytics_enabled,
|
||||
"realtime_enabled": settings.modules.get("realtime_overview", False),
|
||||
"comparison_modes": list(settings.analytics["compare_modes"].keys()),
|
||||
"ranges": [
|
||||
{"key": key, "label": definition["label"]}
|
||||
for key, definition in settings.time_ranges.items()
|
||||
],
|
||||
"buckets": [
|
||||
{"key": key, "label": label}
|
||||
for key, label in settings.analytics["bucket_labels"].items()
|
||||
],
|
||||
"historical_import_enabled": settings.modules.get("historical_import", False),
|
||||
"history": {
|
||||
"enabled": settings.history.get("enabled", True),
|
||||
"default_chunk_days": settings.history.get("default_chunk_days", 7),
|
||||
"auto_sync_enabled": settings.history.get("auto_sync_enabled", False),
|
||||
"auto_sync_interval_minutes": settings.history.get("auto_sync_interval_minutes", 30),
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user