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/aggregated_feed.dart'; 13 : import 'package:stream_feed_dart/src/core/util/token_helper.dart'; 14 : 15 : class NotificationFeed extends AggregatedFeed { 16 2 : NotificationFeed(FeedId feedId, FeedApi feed, 17 : {Token? userToken, String? secret}) 18 2 : : super(feedId, feed, userToken: userToken, secret: secret); 19 : 20 : @override 21 1 : Future<List<NotificationGroup<Activity>>> getActivities({ 22 : int? limit, 23 : int? offset, 24 : Filter? filter, 25 : ActivityMarker? marker, 26 : }) async { 27 1 : final options = { 28 1 : 'limit': limit ?? Default.limit, 29 1 : 'offset': offset ?? Default.offset, 30 2 : ...filter?.params ?? Default.filter.params, 31 2 : ...marker?.params ?? Default.marker.params, 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) => NotificationGroup.fromJson( 38 2 : e, (json) => Activity.fromJson(json as Map<String, dynamic>?))) 39 1 : .toList(growable: false); 40 : return data; 41 : } 42 : 43 : @override 44 1 : Future<List<NotificationGroup<EnrichedActivity>>> getEnrichedActivities({ 45 : int? limit, 46 : int? offset, 47 : Filter? filter, 48 : ActivityMarker? marker, 49 : EnrichmentFlags? flags, 50 : }) async { 51 1 : final options = { 52 1 : 'limit': limit ?? Default.limit, 53 1 : 'offset': offset ?? Default.offset, 54 2 : ...filter?.params ?? Default.filter.params, 55 2 : ...marker?.params ?? Default.marker.params, 56 2 : ...flags?.params ?? Default.enrichmentFlags.params, 57 : }; 58 1 : final token = userToken ?? 59 0 : TokenHelper.buildFeedToken(secret!, TokenAction.read, feedId); 60 4 : final result = await feed.getEnrichedActivities(token, feedId, options); 61 2 : final data = (result.data['results'] as List) 62 3 : .map((e) => NotificationGroup.fromJson(e, 63 2 : (json) => EnrichedActivity.fromJson(json as Map<String, dynamic>?))) 64 1 : .toList(growable: false); 65 : return data; 66 : } 67 : }