LCOV - code coverage report
Current view: top level - src/injectors/editor_app - editor_app_context.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 17 24 70.8 %
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/editor/helper_editor_repository.dart';
       3             : import 'package:pal/src/database/repository/page_repository.dart';
       4             : import 'package:pal/src/database/repository/project_gallery_repository.dart';
       5             : import 'package:pal/src/database/repository/project_repository.dart';
       6             : import 'package:pal/src/database/repository/version_repository.dart';
       7             : import 'package:pal/src/services/http_client/base_client.dart';
       8             : 
       9             : class EditorAppContext {
      10             : 
      11             :   static EditorAppContext _instance;
      12             : 
      13           6 :   static init({@required url, @required String token}) {
      14             :     if(_instance == null) {
      15           6 :       _instance = HttpEditorAppContext.create(url: url, token: token);
      16             :     }
      17             :   }
      18             : 
      19           0 :   @visibleForTesting
      20             :   static create(EditorAppContext editorAppContext) {
      21             :     _instance = editorAppContext;
      22             :   }
      23             : 
      24           6 :   static EditorAppContext get instance {
      25             :     if(_instance == null) {
      26             :       throw "init needs to be called";
      27             :     }
      28             :     return _instance;
      29             :   }
      30             : 
      31           0 :   EditorHelperRepository get helperRepository => throw "not implemented";
      32             : 
      33           0 :   PageRepository get pageRepository => throw "not implemented";
      34             : 
      35           0 :   VersionRepository get versionRepository => throw "not implemented";
      36             : 
      37           0 :   ProjectRepository get projectRepository => throw "not implemented";
      38             : 
      39           0 :   ProjectGalleryRepository get projectGalleryRepository => throw "not implemented";
      40             : }
      41             : 
      42             : /// [EditorAppContext] inherited class to provide some context to all childs
      43             : ///  - this class will retain [HttpClient] to pass to all childs
      44             : class HttpEditorAppContext implements  EditorAppContext {
      45             : 
      46             :   final PageRepository _pageRepository;
      47             : 
      48             :   final EditorHelperRepository _editorHelperRepository;
      49             : 
      50             :   final VersionRepository _versionRepository;
      51             : 
      52             :   final ProjectRepository _projectRepository;
      53             : 
      54             :   final ProjectGalleryRepository _projectGalleryRepository;
      55             : 
      56           6 :   factory HttpEditorAppContext.create(
      57             :       {@required url, @required String token,})
      58           6 :       => HttpEditorAppContext._private(
      59           6 :         httpClient: url == null || token == null ? null : HttpClient.create(url, token),
      60             :       );
      61             : 
      62           6 :   HttpEditorAppContext._private({
      63             :     @required HttpClient httpClient,
      64           0 :   })  : assert(httpClient != null),
      65           6 :         this._pageRepository = PageRepository(httpClient: httpClient),
      66           6 :         this._projectRepository = ProjectRepository(httpClient: httpClient),
      67           6 :         this._editorHelperRepository = EditorHelperRepository(httpClient: httpClient),
      68           6 :         this._projectGalleryRepository = ProjectGalleryHttpRepository(httpClient: httpClient),
      69           6 :         this._versionRepository = VersionHttpRepository(httpClient: httpClient);
      70             : 
      71          12 :   EditorHelperRepository get helperRepository => this._editorHelperRepository;
      72             : 
      73          12 :   PageRepository get pageRepository => this._pageRepository;
      74             : 
      75          12 :   VersionRepository get versionRepository => _versionRepository;
      76             : 
      77          12 :   ProjectRepository get projectRepository => _projectRepository;
      78             : 
      79          12 :   ProjectGalleryRepository get projectGalleryRepository => _projectGalleryRepository;
      80             : 
      81             : }

Generated by: LCOV version 1.14