LCOV - code coverage report
Current view: top level - src/services/editor/page - page_editor_service.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 3 25 12.0 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:typed_data';
       2             : import 'dart:ui' as ui;
       3             : 
       4             : import 'package:flutter/rendering.dart';
       5             : import 'package:flutter/widgets.dart';
       6             : import 'package:pal/src/database/entity/page_entity.dart';
       7             : import 'package:pal/src/database/repository/page_repository.dart';
       8             : 
       9             : abstract class PageEditorService {
      10           6 :   factory PageEditorService.build(
      11             :           GlobalKey repaintBoundaryKey, PageRepository pageRepository) =>
      12           6 :       _PageEditorHttpService(repaintBoundaryKey, pageRepository);
      13             : 
      14             :   Future capturePagePreview();
      15             :   Future<PageEntity> getPage(String route);
      16             :   Future<PageEntity> createPage(PageEntity createPage);
      17             :   Future<String> getOrCreatePageId(String routeName);
      18             : }
      19             : 
      20             : class _PageEditorHttpService implements PageEditorService {
      21             :   final GlobalKey _repaintBoundaryKey;
      22             :   final PageRepository _pageRepository;
      23             : 
      24           6 :   _PageEditorHttpService(this._repaintBoundaryKey, this._pageRepository);
      25             : 
      26             :   @override
      27           0 :   Future capturePagePreview({double pixelRatio = 3.0}) async {
      28             :     try {
      29             :       RenderRepaintBoundary boundary =
      30           0 :           _repaintBoundaryKey.currentContext.findRenderObject();
      31           0 :       ui.Image image = await boundary.toImage(pixelRatio: pixelRatio);
      32             :       ByteData byteData =
      33           0 :           await image.toByteData(format: ui.ImageByteFormat.png);
      34           0 :       Uint8List data = byteData.buffer.asUint8List();
      35           0 :       List<int> dataList = data.toList();
      36             : 
      37           0 :       print(dataList);
      38             :       // TODO: Send with repository using multipart image
      39             :     } catch (e) {
      40           0 :       print('error while catching screenshot');
      41           0 :       print(e);
      42             :     }
      43             :   }
      44             : 
      45           0 :   @override
      46             :   Future<PageEntity> getPage(String route) {
      47           0 :     return this._pageRepository.getPage(route);
      48             :   }
      49             : 
      50           0 :   @override
      51             :   Future<PageEntity> createPage(PageEntity createPage) {
      52           0 :     return this._pageRepository.createPage(createPage);
      53             :   }
      54             : 
      55             :   @override
      56           0 :   Future<String> getOrCreatePageId(String routeName) async {
      57           0 :     if (routeName == null || routeName.length <= 0) {
      58             :       throw 'invalid route name';
      59             :     }
      60             :     
      61             :     String pageId;
      62           0 :     PageEntity resPage = await this.getPage(routeName);
      63           0 :     if (resPage?.id != null && resPage.id.length > 0) {
      64           0 :       pageId = resPage.id;
      65             :     } else {
      66           0 :       PageEntity resPage = await this.createPage(
      67           0 :         PageEntity(route: routeName),
      68             :       );
      69           0 :       if (resPage?.id != null && resPage.id.length > 0) {
      70           0 :         pageId = resPage?.id;
      71             :       } else {
      72             :         throw 'page id is null';
      73             :       }
      74             :     }
      75             : 
      76             :     return pageId;
      77             :   }
      78             : }

Generated by: LCOV version 1.14