Repository navigation
feat(health): parse top-level Records from Apple Health export - #31
Merged
Merged
Conversation
Co-authored-by: Muse Code <muse-code@meta.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds top-level Record parsing for Apple Health exports. A new Foundation-only HealthRecord model captures step count, heart rate, resting heart rate, active and basal energy, distance, body mass, and sleep analysis records, and HealthExportParser now returns them through parseRecords and a combined parseExport alongside the existing workout parsing.
Part of #6. Closes #30.
How it was verified:
mise run lint- no violations in the added or changed files. Repo total stays at the pre-existing baseline (503 violations, 11 serious across 124 files, all in existing app files).mise run build- passed.mise run test- passed, 124 tests with 0 failures. The 14 new HealthRecordTests are listed below.mise run ios:build:devandmise run ios:test:uiwere not run. Nothing user-facing changed; this slice is core parsing logic only.Proof, terminal capture from
mise run testfiltered to the new suite:Each test name states what it shows. Together they cover parsing six records from a mixed export, keeping sleep category values as strings with a derived duration, returning workouts and records together from parseExport, keeping the existing parseWorkouts behaviour unchanged, normalising kilojoules, miles, and pounds, returning nil normalised values for the wrong kind, preserving unknown record types, handling an empty export, throwing on malformed XML, the Data-based API, and a Codable round-trip.
Reviewer notes: