Skip to content

Commit 166f0df

Browse files
authored
Merge pull request #199 from GetStream/refactorflat-feed-core-builder
2 parents 31568fa + 90789df commit 166f0df

33 files changed

+488
-299
lines changed

.github/workflows/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
- uses: VeryGoodOpenSource/[email protected]
6969
with:
7070
path: packages/faye_dart/coverage/lcov.info
71-
min_coverage: 49
71+
min_coverage: 48
7272
- uses: VeryGoodOpenSource/[email protected]
7373
with:
7474
path: packages/stream_feed_flutter_core/coverage/lcov.info

packages/faye_dart/lib/src/client.dart

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import 'dart:async';
22
import 'dart:convert';
33
import 'dart:math' as math;
44

5+
import 'package:equatable/equatable.dart';
56
import 'package:faye_dart/faye_dart.dart';
67
import 'package:faye_dart/src/channel.dart';
78
import 'package:faye_dart/src/message.dart';
8-
import 'package:faye_dart/src/subscription.dart';
99
import 'package:faye_dart/src/timeout_helper.dart';
1010
import 'package:logging/logging.dart';
1111
import 'package:meta/meta.dart';
@@ -47,7 +47,7 @@ const defaultConnectionTimeout = 60;
4747
const defaultConnectionInterval = 0;
4848
const bayeuxVersion = '1.0';
4949

50-
class FayeClient with Extensible, TimeoutHelper {
50+
class FayeClient with Extensible, TimeoutHelper, EquatableMixin {
5151
FayeClient(
5252
this.baseUrl, {
5353
this.protocols,
@@ -437,4 +437,14 @@ class FayeClient with Extensible, TimeoutHelper {
437437
}
438438
setTimeout(Duration(milliseconds: _advice.interval), () => connect());
439439
}
440+
441+
@override
442+
List<Object?> get props => [
443+
_clientId,
444+
_advice,
445+
_channels,
446+
_responseCallbacks,
447+
_connectRequestInProgress,
448+
_manuallyClosed,
449+
];
440450
}

packages/faye_dart/lib/src/subscription.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'package:equatable/equatable.dart';
2+
13
import 'client.dart';
24
import 'message.dart';
35

@@ -35,4 +37,7 @@ class Subscription {
3537
_client.unsubscribe(_channel, this);
3638
_cancelled = true;
3739
}
40+
41+
@override
42+
List<Object?> get props => [_client, _channel, _callback, _withChannel];
3843
}

packages/faye_dart/test/mock.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import 'package:faye_dart/src/client.dart';
22
import 'package:mocktail/mocktail.dart';
33

4-
class MockClient extends Mock implements FayeClient {}
4+
class MockClient extends Mock implements FayeClient {
5+
bool operator ==(Object? other) => true;
6+
}

packages/stream_feed/lib/src/client/analytics_client.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:equatable/equatable.dart';
12
import 'package:stream_feed/src/core/api/analytics_api.dart';
23
import 'package:stream_feed/src/core/http/stream_http_client.dart';
34
import 'package:stream_feed/src/core/http/token.dart';
@@ -15,7 +16,7 @@ import 'package:stream_feed/src/core/util/token_helper.dart';
1516
/// - Viewing another user's profile page
1617
/// - Searching for a certain user/content/topic/etc.
1718
/// {@endtemplate}
18-
class StreamAnalytics {
19+
class StreamAnalytics extends Equatable {
1920
/// [StreamAnalytics] constructor:
2021
///
2122
/// {@macro analytics}
@@ -121,4 +122,11 @@ class StreamAnalytics {
121122
userToken ?? TokenHelper.buildAnalytics(secret!, TokenAction.write);
122123
return _analytics.trackEngagements(token, engagementDataList);
123124
}
125+
126+
@override
127+
List<Object?> get props => [
128+
secret,
129+
userToken,
130+
userData,
131+
];
124132
}

packages/stream_feed/lib/src/client/stream_feed_client_impl.dart

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:equatable/equatable.dart';
12
import 'package:faye_dart/faye_dart.dart';
23
import 'package:logging/logging.dart';
34
import 'package:stream_feed/src/client/aggregated_feed.dart';
@@ -32,7 +33,7 @@ final _levelEmojiMapper = {
3233
};
3334

3435
///{@macro stream_feed_client}
35-
class StreamFeedClientImpl implements StreamFeedClient {
36+
class StreamFeedClientImpl with EquatableMixin implements StreamFeedClient {
3637
/// Builds a [StreamFeedClientImpl].
3738
///{@macro stream_feed_client}
3839
StreamFeedClientImpl(
@@ -348,9 +349,23 @@ class StreamFeedClientImpl implements StreamFeedClient {
348349
userToken ?? TokenHelper.buildUsersToken(secret!, TokenAction.delete);
349350
return _api.users.delete(token, id);
350351
}
352+
353+
@override
354+
List<Object?> get props => [
355+
apiKey,
356+
appId,
357+
secret,
358+
userToken,
359+
_userConnected,
360+
_faye,
361+
_subscriptions,
362+
];
363+
364+
@override
365+
bool get stringify => true;
351366
}
352367

353-
class _FeedSubscription {
368+
class _FeedSubscription extends Equatable {
354369
const _FeedSubscription({
355370
required this.token,
356371
required this.userId,
@@ -371,4 +386,7 @@ class _FeedSubscription {
371386
final String token;
372387
final String userId;
373388
final Subscription? fayeSubscription;
389+
390+
@override
391+
List<Object?> get props => [token, userId, fayeSubscription];
374392
}

packages/stream_feed/pubspec.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ dependencies:
1111
collection: ^1.15.0
1212
dio: ^4.0.0
1313
equatable: ^2.0.0
14-
faye_dart: ^0.1.0
14+
faye_dart:
15+
path: ../faye_dart
1516
http_parser: ^4.0.0
1617
intl: ^0.17.0
1718
jose: ^0.3.2
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export 'empty_state.dart';
2+
export 'error_state.dart';
3+
export 'loading_state.dart';

packages/stream_feed_flutter_core/lib/src/states/empty.dart renamed to packages/stream_feed_flutter/lib/src/default/empty_state.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import 'package:flutter/foundation.dart';
22
import 'package:flutter/material.dart';
33

44
/// {@template onEmptyWidget}
5-
/// A builder for building a widget when the state is empty.
6-
/// An Empty State Widget to be used for empty states
5+
/// A default widget to be displayed for empty state builders.
76
/// {@endtemplate}
87
class EmptyStateWidget extends StatelessWidget {
98
/// Builds an [EmptyStateWidget].
9+
///
1010
/// {@macro onEmptyWidget}
1111
const EmptyStateWidget({
1212
Key? key,

packages/stream_feed_flutter_core/lib/src/states/error.dart renamed to packages/stream_feed_flutter/lib/src/default/error_state.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ import 'package:flutter/foundation.dart';
22
import 'package:flutter/material.dart';
33

44
/// {@template onErrorWidget}
5-
/// A builder for building a widget when an error occurs.
6-
///
7-
/// [ErrorStateWidget] is the default widget
5+
/// A default widget to display for error builders.
86
/// {@endtemplate}
97
108
class ErrorStateWidget extends StatelessWidget {
119
/// Builds an [ErrorStateWidget].
10+
///
1211
/// {@macro onErrorWidget}
1312
const ErrorStateWidget({
1413
Key? key,

0 commit comments

Comments
 (0)