Commit 9e16eec
Changed files (9)
health_data_store
health_data_store/lib/src/repositories/blood_pressure_repository.dart → health_data_store/lib/src/repositories/blood_pressure_repository_impl.dart
File renamed without changes
health_data_store/lib/src/repositories/medicine_intake_repository.dart → health_data_store/lib/src/repositories/medicine_intake_repository_impl.dart
File renamed without changes
health_data_store/lib/src/repositories/medicine_repository.dart → health_data_store/lib/src/repositories/medicine_repository_impl.dart
File renamed without changes
health_data_store/lib/src/repositories/meta_repository.dart
@@ -1,26 +0,0 @@
-import 'package:health_data_store/src/types/date_range.dart';
-
-/// The meta repository contains metadata about the stored data.
-///
-/// This includes data such as ranges in which events exist and what type of
-/// data was collected during a event.
-class MetaRepository {
- DateRange get availableRange {
- // TODO
- throw UnimplementedError();
- }
-
- DateTime get firstEntry {
- // TODO
- throw UnimplementedError();
- }
-
- DateRange get lastEntry {
- // TODO
- throw UnimplementedError();
- }
-
- // TODO: check what is needed
- // - Medicine entries / bp records that belong together
-
-}
health_data_store/lib/src/repositories/note_repository.dart → health_data_store/lib/src/repositories/note_repository_impl.dart
File renamed without changes
health_data_store/lib/src/health_data_store.dart
@@ -1,9 +1,19 @@
-
+import 'package:health_data_store/src/database_manager.dart';
+import 'package:health_data_store/src/repositories/blood_pressure_repository_impl.dart';
+import 'package:health_data_store/src/repositories/medicine_intake_repository_impl.dart';
+import 'package:health_data_store/src/repositories/medicine_repository_impl.dart';
+import 'package:health_data_store/src/repositories/note_repository_impl.dart';
import 'package:sqflite_common/sqflite.dart';
-// TODO: document once finished
-abstract class HealthDataStore {
- const HealthDataStore._create();
+/// Factory class for objects that provide access to the health database.
+///
+/// Ensures that the classes are instantiated for which the table schemes in the
+/// db fit and creates ensures that the db schema is created and updated where
+/// necessary.
+class HealthDataStore {
+ HealthDataStore._create(this._dbMngr);
+
+ DatabaseManager _dbMngr;
/// Initializes objects from [db].
///
@@ -11,11 +21,26 @@ abstract class HealthDataStore {
/// library maintains the version and is responsible for update operations.
static Future<HealthDataStore?> load(Database db) async {
if (!db.isOpen) return null;
- // TODO
- throw UnimplementedError();
+ final mngr = await DatabaseManager.load(db);
+ return HealthDataStore._create(mngr);
}
- // TODO: Future<BloodPressureRepository> getBloodPressureRepository();
- // ...
+ /// Repository for blood pressure data.
+ BloodPressureRepository get bpRepo =>
+ BloodPressureRepository(_dbMngr.db);
+
+ /// Repository for notes.
+ NoteRepository get noteRepo =>
+ NoteRepository(_dbMngr.db);
+
+ /// Repository for medicines.
+ MedicineRepository get medRepo =>
+ MedicineRepository(_dbMngr.db);
+
+ /// Repository for intakes.
+ MedicineIntakeRepository get intakeRepo =>
+ MedicineIntakeRepository(_dbMngr.db);
+ // TODO: hide constructors
+ // TODO: test
}
health_data_store/lib/health_data_store.dart
@@ -1,9 +1,11 @@
/// Package to easily store health domain data.
-library;
+library; // TODO: doc more
export 'src/health_data_store.dart';
-export 'src/repositories/blood_pressure_repository.dart';
-export 'src/repositories/medicine_repository.dart';
+export 'src/repositories/blood_pressure_repository_impl.dart';
+export 'src/repositories/medicine_intake_repository_impl.dart';
+export 'src/repositories/medicine_repository_impl.dart';
+export 'src/repositories/note_repository_impl.dart';
export 'src/types/blood_pressure_record.dart';
export 'src/types/date_range.dart';
export 'src/types/medicine.dart';
health_data_store/test/src/repositories/medicine_intake_repository_test.dart
@@ -1,6 +1,5 @@
import 'package:health_data_store/health_data_store.dart';
-import 'package:health_data_store/src/repositories/medicine_intake_repository.dart';
import 'package:test/test.dart';
import '../database_manager_test.dart';
health_data_store/test/src/repositories/note_repository_test.dart
@@ -1,5 +1,7 @@
-import 'package:health_data_store/health_data_store.dart';
-import 'package:health_data_store/src/repositories/note_repository.dart';
+
+import 'package:health_data_store/src/repositories/blood_pressure_repository_impl.dart';
+import 'package:health_data_store/src/repositories/note_repository_impl.dart';
+import 'package:health_data_store/src/types/date_range.dart';
import 'package:test/test.dart';
import '../database_manager_test.dart';