From 63f568bf90a7b5b558e85af66b7a00e1dc7feb4e Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Thu, 19 May 2022 14:51:28 +0530 Subject: [PATCH] refactor(llc): move membership from channel_model to channel_state Signed-off-by: xsahil03x --- packages/stream_chat/lib/src/client/channel.dart | 4 ++-- .../stream_chat/lib/src/core/models/channel_model.dart | 9 --------- .../stream_chat/lib/src/core/models/channel_model.g.dart | 4 ---- .../stream_chat/lib/src/core/models/channel_state.dart | 6 ++++++ .../stream_chat/lib/src/core/models/channel_state.g.dart | 4 ++++ 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index 2a9e26a0..6076a57f 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -174,13 +174,13 @@ class Channel { /// Relationship of the current user to this channel. Member? get membership { _checkInitialized(); - return state!._channelState.channel?.membership; + return state!._channelState.membership; } /// Relationship of the current user to this channel as a stream. Stream get membershipStream { _checkInitialized(); - return state!.channelStateStream.map((cs) => cs.channel?.membership); + return state!.channelStateStream.map((cs) => cs.membership); } /// Channel user creator. diff --git a/packages/stream_chat/lib/src/core/models/channel_model.dart b/packages/stream_chat/lib/src/core/models/channel_model.dart index e2f7303e..1ed95d9b 100644 --- a/packages/stream_chat/lib/src/core/models/channel_model.dart +++ b/packages/stream_chat/lib/src/core/models/channel_model.dart @@ -26,7 +26,6 @@ class ChannelModel { this.extraData = const {}, this.team, this.cooldown = 0, - this.membership, }) : assert( (cid != null && cid.contains(':')) || (id != null && type != null), 'provide either a cid or an id and type', @@ -102,10 +101,6 @@ class ChannelModel { @JsonKey(includeIfNull: false, toJson: Serializer.readOnly) final String? team; - /// Relationship of the current user to this channel. - @JsonKey(includeIfNull: false) - final Member? membership; - /// Known top level fields. /// Useful for [Serializer] methods. static const topLevelFields = [ @@ -123,7 +118,6 @@ class ChannelModel { 'member_count', 'team', 'cooldown', - 'membership', ]; /// Shortcut for channel name @@ -152,7 +146,6 @@ class ChannelModel { Map? extraData, String? team, int? cooldown, - Member? membership, }) => ChannelModel( id: id ?? this.id, @@ -170,7 +163,6 @@ class ChannelModel { extraData: extraData ?? this.extraData, team: team ?? this.team, cooldown: cooldown ?? this.cooldown, - membership: membership ?? this.membership, ); /// Returns a new [ChannelModel] that is a combination of this channelModel @@ -193,7 +185,6 @@ class ChannelModel { extraData: {...extraData, ...other.extraData}, team: other.team, cooldown: other.cooldown, - membership: other.membership, ); } } diff --git a/packages/stream_chat/lib/src/core/models/channel_model.g.dart b/packages/stream_chat/lib/src/core/models/channel_model.g.dart index 910c3aea..9bd8f062 100644 --- a/packages/stream_chat/lib/src/core/models/channel_model.g.dart +++ b/packages/stream_chat/lib/src/core/models/channel_model.g.dart @@ -36,9 +36,6 @@ ChannelModel _$ChannelModelFromJson(Map json) => ChannelModel( extraData: json['extra_data'] as Map? ?? const {}, team: json['team'] as String?, cooldown: json['cooldown'] as int? ?? 0, - membership: json['membership'] == null - ? null - : Member.fromJson(json['membership'] as Map), ); Map _$ChannelModelToJson(ChannelModel instance) { @@ -66,6 +63,5 @@ Map _$ChannelModelToJson(ChannelModel instance) { val['cooldown'] = instance.cooldown; val['extra_data'] = instance.extraData; writeNotNull('team', readonly(instance.team)); - writeNotNull('membership', instance.membership?.toJson()); return val; } diff --git a/packages/stream_chat/lib/src/core/models/channel_state.dart b/packages/stream_chat/lib/src/core/models/channel_state.dart index 3ba3c5f8..e7e3c7b1 100644 --- a/packages/stream_chat/lib/src/core/models/channel_state.dart +++ b/packages/stream_chat/lib/src/core/models/channel_state.dart @@ -19,6 +19,7 @@ class ChannelState { this.watcherCount, this.watchers, this.read, + this.membership, }); /// The channel to which this state belongs @@ -42,6 +43,9 @@ class ChannelState { /// The list of channel reads final List? read; + /// + final Member? membership; + /// Create a new instance from a json static ChannelState fromJson(Map json) => _$ChannelStateFromJson(json); @@ -58,6 +62,7 @@ class ChannelState { int? watcherCount, List? watchers, List? read, + Member? membership, }) => ChannelState( channel: channel ?? this.channel, @@ -67,5 +72,6 @@ class ChannelState { watcherCount: watcherCount ?? this.watcherCount, watchers: watchers ?? this.watchers, read: read ?? this.read, + membership: membership ?? this.membership, ); } diff --git a/packages/stream_chat/lib/src/core/models/channel_state.g.dart b/packages/stream_chat/lib/src/core/models/channel_state.g.dart index afec76c4..40e11a32 100644 --- a/packages/stream_chat/lib/src/core/models/channel_state.g.dart +++ b/packages/stream_chat/lib/src/core/models/channel_state.g.dart @@ -26,6 +26,9 @@ ChannelState _$ChannelStateFromJson(Map json) => ChannelState( read: (json['read'] as List?) ?.map((e) => Read.fromJson(e as Map)) .toList(), + membership: json['membership'] == null + ? null + : Member.fromJson(json['membership'] as Map), ); Map _$ChannelStateToJson(ChannelState instance) => @@ -38,4 +41,5 @@ Map _$ChannelStateToJson(ChannelState instance) => 'watcher_count': instance.watcherCount, 'watchers': instance.watchers?.map((e) => e.toJson()).toList(), 'read': instance.read?.map((e) => e.toJson()).toList(), + 'membership': instance.membership?.toJson(), };