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

          Line data    Source code
       1             : 
       2             : import 'dart:convert';
       3             : 
       4             : import 'package:flutter/material.dart';
       5             : import 'package:hive/hive.dart';
       6             : import 'package:http/http.dart';
       7             : import 'package:pal/src/database/adapter/helper_group_visit_entity_adapter.dart' as Adapter;
       8             : import 'package:pal/src/database/entity/page_user_visit_entity.dart';
       9             : import 'package:pal/src/services/http_client/base_client.dart';
      10             : 
      11             : import '../../hive_client.dart';
      12             : import '../base_repository.dart';
      13             : 
      14             : 
      15             : abstract class HelperGroupUserVisitRepository {
      16             : 
      17             :   Future<List<HelperGroupUserVisitEntity>> get(String userId, String minAppVersion);
      18             : 
      19             :   Future<void> saveAll(List<HelperGroupUserVisitEntity> visits);
      20             : 
      21             :   Future<void> add(HelperGroupUserVisitEntity visit, {bool feedback, String inAppUserId});
      22             : 
      23             :   Future<void> clear();
      24             : }
      25             : 
      26             : /// [HelperGroupUserVisitHttpRepository]
      27             : class HelperGroupUserVisitHttpRepository extends BaseHttpRepository implements HelperGroupUserVisitRepository {
      28             : 
      29             :   Adapter.HelperGroupUserVisitEntityAdapter _adapter = Adapter.HelperGroupUserVisitEntityAdapter();
      30             : 
      31           4 :   HelperGroupUserVisitHttpRepository({@required HttpClient httpClient})
      32           4 :     : super(httpClient: httpClient);
      33             : 
      34             : 
      35           1 :   Future<List<HelperGroupUserVisitEntity>> get(String userId, String minAppVersion) async {
      36           1 :     final Response response = await this
      37           1 :       .httpClient
      38           2 :       .get('client/visited-user-groups', headers: {
      39             :         'appVersion': minAppVersion,
      40             :         'inAppUserId': userId
      41             :       });
      42           3 :     return _adapter.parseArray(response.body);
      43             :   }
      44             : 
      45             :   @override
      46           0 :   Future<void> saveAll(List<HelperGroupUserVisitEntity> visits) async {
      47           0 :     throw UnimplementedError();
      48             :   }
      49             : 
      50           0 :   @override
      51             :   Future<void> clear() {
      52           0 :     throw UnimplementedError();
      53             :   }
      54             : 
      55             :   @override
      56           1 :   Future<void> add(HelperGroupUserVisitEntity visit, {bool feedback, String inAppUserId}) async  {
      57           2 :     var url = 'client/group/${visit.helperGroupId}/triggered';
      58           2 :     var body = jsonEncode({'positiveFeedback': feedback});
      59           2 :     await httpClient
      60           2 :       .put(url, body: body, headers: {"inAppUserId": inAppUserId});
      61             :   }
      62             : }
      63             : 
      64             : /// [HelperGroupUserVisitLocalRepository]
      65             : class HelperGroupUserVisitLocalRepository implements HelperGroupUserVisitRepository{
      66             : 
      67             :   LocalDbOpener<HelperGroupUserVisitEntity> _hiveBoxOpener;
      68             : 
      69           4 :   HelperGroupUserVisitLocalRepository({@required LocalDbOpener<HelperGroupUserVisitEntity> hiveBoxOpener})
      70             :     : _hiveBoxOpener = hiveBoxOpener;
      71             : 
      72           2 :   Future<List<HelperGroupUserVisitEntity>> get(String userId, String minAppVersion)
      73          12 :     => _hiveBoxOpener().then((res) => res.values.toList());
      74             : 
      75           2 :   @override
      76             :   Future<void> saveAll(List<HelperGroupUserVisitEntity> visits)
      77          10 :     => _hiveBoxOpener().then((res) => res.addAll(visits));
      78             : 
      79           2 :   @override
      80          10 :   Future<void> clear() => _hiveBoxOpener().then((res) => res.clear());
      81             : 
      82           1 :   @override
      83             :   Future<void> add(HelperGroupUserVisitEntity visit, {bool feedback, String inAppUserId})
      84           5 :     => _hiveBoxOpener().then((res) => res.add(visit));
      85             : 
      86             : }

Generated by: LCOV version 1.14