LCOV - code coverage report
Current view: top level - lib/_classes/storage/transaction_log - file_protocol.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 17 0.0 %
Date: 2024-10-04 11:12:13 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2023 The terCAD team. All rights reserved.
       2             : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
       3             : 
       4             : import 'package:app_finance/_classes/herald/app_locale.dart';
       5             : import 'package:app_finance/_classes/storage/transaction_log/abstract_protocol.dart';
       6             : import 'package:app_finance/_classes/storage/transaction_log/interface_protocol.dart';
       7             : import 'package:app_finance/_mixins/file/file_import_mixin.dart';
       8             : import 'package:app_finance/_mixins/file/file_export_mixin_web.dart'
       9             :     if (dart.library.io) 'package:app_finance/_mixins/file/file_export_mixin.dart';
      10             : 
      11             : class FileProtocol extends AbstractProtocol with FileImportMixin, FileExportMixin implements InterfaceProtocol {
      12             :   @override
      13             :   final Function callbackMessage;
      14             :   @override
      15             :   final Function callbackProgress;
      16             :   String message = '';
      17             :   bool inProgress = false;
      18             : 
      19           0 :   FileProtocol({
      20             :     required this.callbackMessage,
      21             :     required this.callbackProgress,
      22             :   });
      23             : 
      24           0 :   @override
      25             :   Future<void> save(dynamic data) async {
      26           0 :     if (data.isEmpty) {
      27           0 :       callbackMessage(message = AppLocale.labels.isRequired);
      28             :       return;
      29             :     }
      30           0 :     callbackProgress(inProgress = true);
      31           0 :     final codeUnits = await exportTransactions();
      32           0 :     await exportFile(codeUnits, data);
      33           0 :     callbackProgress(inProgress = false);
      34           0 :     callbackMessage(message = AppLocale.labels.success);
      35             :   }
      36             : 
      37           0 :   @override
      38             :   Future<void> load(dynamic data, [bool isEncrypted = true, bool isCleaned = false]) async {
      39           0 :     callbackProgress(inProgress = true);
      40           0 :     final content = await importFile(['log']);
      41             :     if (content != null) {
      42             :       if (isCleaned) {
      43           0 :         clearTransactions();
      44             :       }
      45           0 :       importTransactions(content.codeUnits, isEncrypted);
      46           0 :       callbackMessage(message = AppLocale.labels.success);
      47             :     } else {
      48           0 :       callbackMessage(message = AppLocale.labels.missingContent);
      49             :     }
      50           0 :     callbackProgress(inProgress = false);
      51             :   }
      52             : }

Generated by: LCOV version 1.14