Line data Source code
1 : import 'package:stream_feed_dart/src/core/api/feed_api.dart'; 2 : import 'package:stream_feed_dart/src/core/http/token.dart'; 3 : import 'package:stream_feed_dart/src/core/models/activity.dart'; 4 : import 'package:stream_feed_dart/src/core/models/activity_marker.dart'; 5 : import 'package:stream_feed_dart/src/core/models/enriched_activity.dart'; 6 : import 'package:stream_feed_dart/src/core/models/enrichment_flags.dart'; 7 : import 'package:stream_feed_dart/src/core/models/feed_id.dart'; 8 : import 'package:stream_feed_dart/src/core/models/filter.dart'; 9 : import 'package:stream_feed_dart/src/core/models/group.dart'; 10 : import 'package:stream_feed_dart/src/core/util/default.dart'; 11 : 12 : import 'package:stream_feed_dart/src/client/feed.dart'; 13 : import 'package:stream_feed_dart/src/core/util/token_helper.dart'; 14 : 15 : class AggregatedFeed extends Feed { 16 3 : AggregatedFeed(FeedId feedId, FeedApi feed, 17 : {Token? userToken, String? secret}) 18 3 : : super(feedId, feed, userToken: userToken, secret: secret); 19 : 20 1 : Future<List<Group<Activity>>> getActivities({ 21 : int? limit, 22 : int? offset, 23 : Filter? filter, 24 : ActivityMarker? marker, 25 : }) async { 26 1 : final options = { 27 1 : 'limit': limit ?? Default.limit, 28 1 : 'offset': offset ?? Default.offset, 29 2 : ...filter?.params ?? Default.filter.params, 30 2 : ...marker?.params ?? Default.marker.params, 31 : }; 32 : 33 1 : final token = userToken ?? 34 0 : TokenHelper.buildFeedToken(secret!, TokenAction.read, feedId); 35 4 : final result = await feed.getActivities(token, feedId, options); 36 2 : final data = (result.data!['results'] as List) 37 3 : .map((e) => Group.fromJson( 38 2 : e, (json) => Activity.fromJson(json as Map<String, dynamic>?))) 39 1 : .toList(growable: false); 40 : return data; 41 : } 42 : 43 1 : Future<List<Group<EnrichedActivity>>> getEnrichedActivities({ 44 : int? limit, 45 : int? offset, 46 : Filter? filter, 47 : ActivityMarker? marker, 48 : EnrichmentFlags? flags, 49 : }) async { 50 1 : final options = { 51 1 : 'limit': limit ?? Default.limit, 52 1 : 'offset': offset ?? Default.offset, 53 2 : ...filter?.params ?? Default.filter.params, 54 2 : ...marker?.params ?? Default.marker.params, 55 2 : ...flags?.params ?? Default.enrichmentFlags.params, 56 : }; 57 1 : final token = userToken ?? 58 0 : TokenHelper.buildFeedToken(secret!, TokenAction.read, feedId); 59 4 : final result = await feed.getEnrichedActivities(token, feedId, options); 60 2 : final data = (result.data['results'] as List) 61 3 : .map((e) => Group.fromJson(e, 62 2 : (json) => EnrichedActivity.fromJson(json as Map<String, dynamic>?))) 63 1 : .toList(growable: false); 64 : return data; 65 : } 66 : }