Clarify Health Auto Export config uploads
This commit is contained in:
+17
@@ -312,6 +312,10 @@ final class App
|
|||||||
|
|
||||||
private function importHealthPayload(string $username, array $settings, array $payload): array
|
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);
|
$metrics = $this->healthMetricsFromPayload($payload);
|
||||||
$workouts = $this->healthWorkoutsFromPayload($payload);
|
$workouts = $this->healthWorkoutsFromPayload($payload);
|
||||||
$metricImport = $this->healthEventsFromMetrics($metrics);
|
$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
|
private function countHealthImportItems(array $metricImport, array $workoutImport): int
|
||||||
{
|
{
|
||||||
return count($metricImport['steps'] ?? [])
|
return count($metricImport['steps'] ?? [])
|
||||||
|
|||||||
Reference in New Issue
Block a user