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