LCOV - code coverage report
Current view: top level - src/database/repository - version_repository.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 19 22 86.4 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:convert';
       2             : 
       3             : import 'package:flutter/material.dart';
       4             : import 'package:pal/src/database/adapter/version_entity_adapter.dart';
       5             : import 'package:pal/src/database/entity/pageable.dart';
       6             : import 'package:pal/src/database/entity/version_entity.dart';
       7             : import 'package:pal/src/database/repository/base_repository.dart';
       8             : import 'package:pal/src/services/http_client/base_client.dart';
       9             : 
      10             : abstract class VersionRepository {
      11             : 
      12           0 :   Future<Pageable<VersionEntity>> getVersions({String name, int pageSize = 10}) => throw "not implemented yet";
      13             : 
      14           0 :   Future<VersionEntity> getVersion({String name = ''}) => throw "not implemented yet";
      15             : 
      16           0 :   Future<VersionEntity> createVersion(final VersionEntity createVersion) => throw "not implemented yet";
      17             : }
      18             : 
      19             : class VersionHttpRepository extends BaseHttpRepository
      20             :     implements VersionRepository {
      21             :   final VersionEntityAdapter _versionEntityAdapter = VersionEntityAdapter();
      22             :   final HttpClient httpClient;
      23             : 
      24           9 :   VersionHttpRepository({@required this.httpClient})
      25           9 :       : super(httpClient: httpClient);
      26             : 
      27           1 :   @override
      28             :   Future<Pageable<VersionEntity>> getVersions({
      29             :     String name = '',
      30             :     int pageSize = 10,
      31             :   }) {
      32             :     return this
      33           1 :         .httpClient
      34           2 :         .get('editor/versions?versionName=$name&pageSize=$pageSize')
      35           5 :         .then((res) => _versionEntityAdapter.parsePage(res.body));
      36             :   }
      37             : 
      38           1 :   @override
      39             :   Future<VersionEntity> getVersion({String name = ''}) {
      40             :     return this
      41           1 :         .httpClient
      42           2 :         .get('editor/versions?versionName=$name&pageSize=1')
      43           2 :         .then((res) {
      44           3 :       Pageable<VersionEntity> pages = _versionEntityAdapter.parsePage(res.body);
      45           4 :       return (pages.entities != null && pages.entities.length > 0)
      46           2 :           ? pages.entities.first
      47             :           : null;
      48             :     });
      49             :   }
      50             : 
      51           1 :   Future<VersionEntity> createVersion(
      52             :     final VersionEntity createVersion,
      53             :   ) async {
      54             :     return this
      55           1 :         .httpClient
      56           1 :         .post('editor/versions',
      57           2 :             body: jsonEncode({
      58           1 :               'name': createVersion.name,
      59             :             }))
      60           5 :         .then((res) => _versionEntityAdapter.parse(res.body));
      61             :   }
      62             : }

Generated by: LCOV version 1.14