LCOV - code coverage report
Current view: top level - client - stream_client_impl.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 32 32 100.0 %
Date: 2021-04-14 08:03:52 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:stream_feed_dart/src/client/aggregated_feed.dart';
       2             : import 'package:stream_feed_dart/src/client/flat_feed.dart';
       3             : import 'package:stream_feed_dart/src/client/notification_feed.dart';
       4             : import 'package:stream_feed_dart/src/client/batch_operations_client.dart';
       5             : import 'package:stream_feed_dart/src/client/collections_client.dart';
       6             : import 'package:stream_feed_dart/src/client/file_storage_client.dart';
       7             : import 'package:stream_feed_dart/src/client/image_storage_client.dart';
       8             : import 'package:stream_feed_dart/src/client/reactions_client.dart';
       9             : import 'package:stream_feed_dart/src/core/api/stream_api.dart';
      10             : import 'package:stream_feed_dart/src/core/api/stream_api_impl.dart';
      11             : import 'package:stream_feed_dart/src/core/http/stream_http_client.dart';
      12             : import 'package:stream_feed_dart/src/core/http/token.dart';
      13             : import 'package:stream_feed_dart/src/core/index.dart';
      14             : import 'package:stream_feed_dart/src/core/models/feed_id.dart';
      15             : 
      16             : import 'package:stream_feed_dart/src/client/users_client.dart';
      17             : import 'package:stream_feed_dart/src/client/stream_client.dart';
      18             : import 'package:stream_feed_dart/src/core/util/extension.dart';
      19             : import 'package:stream_feed_dart/src/core/util/token_helper.dart';
      20             : 
      21             : ///
      22             : class StreamClientImpl implements StreamClient {
      23             :   ///
      24           1 :   StreamClientImpl(String apiKey,
      25             :       {this.secret,
      26             :       this.userToken,
      27             :       StreamHttpClientOptions? options,
      28             :       StreamApi? api})
      29             :       : assert(
      30           1 :           userToken != null || secret != null,
      31             :           'At least a secret or userToken must be provided',
      32             :         ),
      33           1 :         _api = api ?? StreamApiImpl(apiKey, options: options);
      34             : 
      35             :   final Token? userToken;
      36             :   final StreamApi _api;
      37             :   final String? secret;
      38             : 
      39           1 :   @override
      40             :   BatchOperationsClient get batch {
      41           2 :     checkNotNull(secret, "You can't use batch operations client side");
      42           4 :     return BatchOperationsClient(_api.batch, secret: secret!);
      43             :   }
      44             : 
      45           1 :   @override
      46             :   CollectionsClient get collections =>
      47           5 :       CollectionsClient(_api.collections, userToken: userToken, secret: secret);
      48             : 
      49           1 :   @override
      50             :   ReactionsClient get reactions =>
      51           5 :       ReactionsClient(_api.reactions, userToken: userToken, secret: secret);
      52             : 
      53           1 :   @override
      54             :   UsersClient get users =>
      55           5 :       UsersClient(_api.users, userToken: userToken, secret: secret);
      56             : 
      57           1 :   @override
      58             :   FileStorageClient get files =>
      59           5 :       FileStorageClient(_api.files, userToken: userToken, secret: secret);
      60             : 
      61           1 :   @override
      62             :   ImageStorageClient get images =>
      63           5 :       ImageStorageClient(_api.images, userToken: userToken, secret: secret);
      64             : 
      65           1 :   @override
      66             :   AggregatedFeed aggregatedFeed(String slug, String userId) {
      67           1 :     final id = FeedId(slug, userId);
      68           5 :     return AggregatedFeed(id, _api.feed, userToken: userToken, secret: secret);
      69             :   }
      70             : 
      71           1 :   @override
      72             :   FlatFeed flatFeed(String slug, String userId) {
      73           1 :     final id = FeedId(slug, userId);
      74           5 :     return FlatFeed(id, _api.feed, userToken: userToken, secret: secret);
      75             :   }
      76             : 
      77           1 :   @override
      78             :   NotificationFeed notificationFeed(String slug, String userId) {
      79           1 :     final id = FeedId(slug, userId);
      80           3 :     return NotificationFeed(id, _api.feed,
      81           2 :         userToken: userToken, secret: secret);
      82             :   }
      83             : 
      84           1 :   @override
      85             :   Token frontendToken(
      86             :     String userId, {
      87             :     DateTime? expiresAt,
      88             :   }) {
      89           2 :     checkNotNull(secret, "You can't use the frontendToken method client side");
      90           2 :     return TokenHelper.buildFrontendToken(secret!, userId,
      91             :         expiresAt: expiresAt);
      92             :   }
      93             : 
      94           1 :   @override
      95             :   Future<OpenGraphData> openGraph(String targetUrl) {
      96           3 :     final token = userToken ?? TokenHelper.buildOpenGraphToken(secret!);
      97           2 :     return _api.openGraph(token, targetUrl);
      98             :   }
      99             : }

Generated by: LCOV version 1.15