LCOV - code coverage report
Current view: top level - src/ui/client - helpers_synchronizer.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 16 16 100.0 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/material.dart';
       2             : import 'package:pal/src/database/repository/client/page_user_visit_repository.dart';
       3             : import 'package:pal/src/database/repository/client/schema_repository.dart';
       4             : import 'package:pal/src/services/package_version.dart';
       5             : 
       6             : class HelpersSynchronizer {
       7             : 
       8             :   final HelperGroupUserVisitRepository pageUserVisitRemoteRepository, pageUserVisitLocalRepository;
       9             : 
      10             :   final ClientSchemaRepository schemaRemoteRepository;
      11             :   
      12             :   final ClientSchemaLocalRepository schemaLocalRepository;
      13             : 
      14             :   final PackageVersionReader packageVersionReader;
      15             : 
      16           3 :   HelpersSynchronizer({
      17             :     @required this.pageUserVisitRemoteRepository,
      18             :     @required this.pageUserVisitLocalRepository,
      19             :     @required this.schemaRemoteRepository,
      20             :     @required this.schemaLocalRepository,
      21             :     @required this.packageVersionReader,
      22             :   });
      23             : 
      24           1 :   Future<void> sync(String inAppUserId) async {
      25           2 :     debugPrint("...sync database start");
      26           2 :     String currentVersion = packageVersionReader.version;
      27           3 :     var currentSchema = await schemaLocalRepository.get(appVersion: currentVersion);
      28           3 :     var lastSchemaVersion = await schemaRemoteRepository.get(
      29           1 :       schemaVersion: currentSchema?.schemaVersion,
      30             :       appVersion: currentVersion
      31             :     );
      32           4 :     debugPrint(" current schema version ${currentSchema?.schemaVersion}");
      33             :     if(currentSchema == null) {
      34           3 :       var visits = await pageUserVisitRemoteRepository.get(inAppUserId, currentVersion);
      35           2 :       debugPrint("Save user visits");
      36           4 :       debugPrint(" ${visits.length} visits found");
      37           3 :       await pageUserVisitLocalRepository.saveAll(visits);
      38             :     }
      39             :     if(lastSchemaVersion != null) {
      40           4 :       debugPrint(" remote schema version ${lastSchemaVersion?.schemaVersion}");
      41           5 :       debugPrint("${lastSchemaVersion?.groups?.length ?? 0} groups saved");
      42           3 :       await schemaLocalRepository.save(lastSchemaVersion);
      43             :     }
      44           2 :     debugPrint("...sync database end");
      45             :   }
      46             : 
      47             : }

Generated by: LCOV version 1.14