Clarify Health Auto Export config uploads

This commit is contained in:
2026-05-19 15:19:24 +02:00
parent e36f27da4a
commit e00cd66fbe
+17
View File
@@ -312,6 +312,10 @@ final class App
private function importHealthPayload(string $username, array $settings, array $payload): array
{
if ($this->isHealthAutoExportConfigurationPayload($payload)) {
throw new RuntimeException('Diese JSON-Datei ist eine Health-Auto-Export-Konfiguration, aber kein Health-Datenexport. Bitte in Health Auto Export die Automation ausführen und die dabei erzeugte REST-API-Nutzlast senden.');
}
$metrics = $this->healthMetricsFromPayload($payload);
$workouts = $this->healthWorkoutsFromPayload($payload);
$metricImport = $this->healthEventsFromMetrics($metrics);
@@ -441,6 +445,19 @@ final class App
];
}
private function isHealthAutoExportConfigurationPayload(array $payload): bool
{
if (!isset($payload['exportDestination'], $payload['exportDataType'], $payload['urlString'])) {
return false;
}
$metrics = is_array($payload['metrics'] ?? null) ? $payload['metrics'] : [];
$hasOnlyMetricNames = $metrics !== [] && array_filter($metrics, 'is_array') === [];
$hasDataCollections = is_array($payload['workouts'] ?? null) || is_array($payload['data'] ?? null);
return $hasOnlyMetricNames && !$hasDataCollections;
}
private function countHealthImportItems(array $metricImport, array $workoutImport): int
{
return count($metricImport['steps'] ?? [])