diff --git a/lib/api/model/events.dart b/lib/api/model/events.dart index 7ef38b4260..59e5bd1c60 100644 --- a/lib/api/model/events.dart +++ b/lib/api/model/events.dart @@ -37,8 +37,8 @@ sealed class Event { } case 'stream': switch (json['op'] as String) { - case 'create': return StreamCreateEvent.fromJson(json); - case 'delete': return StreamDeleteEvent.fromJson(json); + case 'create': return ChannelCreateEvent.fromJson(json); + case 'delete': return ChannelDeleteEvent.fromJson(json); // TODO(#182): case 'update': … default: return UnexpectedEvent.fromJson(json); } @@ -332,51 +332,51 @@ class RealmUserUpdateEvent extends RealmUserEvent { /// /// The corresponding API docs are in several places for /// different values of `op`; see subclasses. -sealed class StreamEvent extends Event { +sealed class ChannelEvent extends Event { @override @JsonKey(includeToJson: true) String get type => 'stream'; String get op; - StreamEvent({required super.id}); + ChannelEvent({required super.id}); } -/// A [StreamEvent] with op `create`: https://zulip.com/api/get-events#stream-create +/// A [ChannelEvent] with op `create`: https://zulip.com/api/get-events#stream-create @JsonSerializable(fieldRename: FieldRename.snake) -class StreamCreateEvent extends StreamEvent { +class ChannelCreateEvent extends ChannelEvent { @override String get op => 'create'; final List streams; - StreamCreateEvent({required super.id, required this.streams}); + ChannelCreateEvent({required super.id, required this.streams}); - factory StreamCreateEvent.fromJson(Map json) => - _$StreamCreateEventFromJson(json); + factory ChannelCreateEvent.fromJson(Map json) => + _$ChannelCreateEventFromJson(json); @override - Map toJson() => _$StreamCreateEventToJson(this); + Map toJson() => _$ChannelCreateEventToJson(this); } -/// A [StreamEvent] with op `delete`: https://zulip.com/api/get-events#stream-delete +/// A [ChannelEvent] with op `delete`: https://zulip.com/api/get-events#stream-delete @JsonSerializable(fieldRename: FieldRename.snake) -class StreamDeleteEvent extends StreamEvent { +class ChannelDeleteEvent extends ChannelEvent { @override String get op => 'delete'; final List streams; - StreamDeleteEvent({required super.id, required this.streams}); + ChannelDeleteEvent({required super.id, required this.streams}); - factory StreamDeleteEvent.fromJson(Map json) => - _$StreamDeleteEventFromJson(json); + factory ChannelDeleteEvent.fromJson(Map json) => + _$ChannelDeleteEventFromJson(json); @override - Map toJson() => _$StreamDeleteEventToJson(this); + Map toJson() => _$ChannelDeleteEventToJson(this); } -// TODO(#182) StreamUpdateEvent, for a [StreamEvent] with op `update`: +// TODO(#182) ChannelUpdateEvent, for a [ChannelEvent] with op `update`: // https://zulip.com/api/get-events#stream-update /// A Zulip event of type `subscription`. diff --git a/lib/api/model/events.g.dart b/lib/api/model/events.g.dart index 0dbf71f6e8..54fee1a5ff 100644 --- a/lib/api/model/events.g.dart +++ b/lib/api/model/events.g.dart @@ -195,30 +195,30 @@ Json? _$JsonConverterToJson( ) => value == null ? null : toJson(value); -StreamCreateEvent _$StreamCreateEventFromJson(Map json) => - StreamCreateEvent( +ChannelCreateEvent _$ChannelCreateEventFromJson(Map json) => + ChannelCreateEvent( id: (json['id'] as num).toInt(), streams: (json['streams'] as List) .map((e) => ZulipStream.fromJson(e as Map)) .toList(), ); -Map _$StreamCreateEventToJson(StreamCreateEvent instance) => +Map _$ChannelCreateEventToJson(ChannelCreateEvent instance) => { 'id': instance.id, 'type': instance.type, 'streams': instance.streams, }; -StreamDeleteEvent _$StreamDeleteEventFromJson(Map json) => - StreamDeleteEvent( +ChannelDeleteEvent _$ChannelDeleteEventFromJson(Map json) => + ChannelDeleteEvent( id: (json['id'] as num).toInt(), streams: (json['streams'] as List) .map((e) => ZulipStream.fromJson(e as Map)) .toList(), ); -Map _$StreamDeleteEventToJson(StreamDeleteEvent instance) => +Map _$ChannelDeleteEventToJson(ChannelDeleteEvent instance) => { 'id': instance.id, 'type': instance.type, diff --git a/lib/model/channel.dart b/lib/model/channel.dart index adaab8ad24..353acde8e4 100644 --- a/lib/model/channel.dart +++ b/lib/model/channel.dart @@ -129,9 +129,9 @@ class ChannelStoreImpl with ChannelStore { return false; } - void handleStreamEvent(StreamEvent event) { + void handleChannelEvent(ChannelEvent event) { switch (event) { - case StreamCreateEvent(): + case ChannelCreateEvent(): assert(event.streams.every((stream) => !streams.containsKey(stream.streamId) && !streamsByName.containsKey(stream.name))); @@ -140,7 +140,7 @@ class ChannelStoreImpl with ChannelStore { // (Don't touch `subscriptions`. If the user is subscribed to the stream, // details will come in a later `subscription` event.) - case StreamDeleteEvent(): + case ChannelDeleteEvent(): for (final stream in event.streams) { assert(identical(streams[stream.streamId], streamsByName[stream.name])); assert(subscriptions[stream.streamId] == null diff --git a/lib/model/store.dart b/lib/model/store.dart index 953d71283e..2fa3add040 100644 --- a/lib/model/store.dart +++ b/lib/model/store.dart @@ -477,9 +477,9 @@ class PerAccountStore extends ChangeNotifier with ChannelStore, MessageStore { autocompleteViewManager.handleRealmUserUpdateEvent(event); notifyListeners(); - case StreamEvent(): + case ChannelEvent(): assert(debugLog("server event: stream/${event.op}")); - _channels.handleStreamEvent(event); + _channels.handleChannelEvent(event); notifyListeners(); case SubscriptionEvent(): diff --git a/test/model/test_store.dart b/test/model/test_store.dart index d68b6c1a46..32aeed5216 100644 --- a/test/model/test_store.dart +++ b/test/model/test_store.dart @@ -134,7 +134,7 @@ extension PerAccountStoreTestExtension on PerAccountStore { } Future addStreams(List streams) async { - await handleEvent(StreamCreateEvent(id: 1, streams: streams)); + await handleEvent(ChannelCreateEvent(id: 1, streams: streams)); } Future addSubscription(Subscription subscription) async { diff --git a/test/widgets/message_list_test.dart b/test/widgets/message_list_test.dart index 1156e7d64b..d5744f2051 100644 --- a/test/widgets/message_list_test.dart +++ b/test/widgets/message_list_test.dart @@ -406,7 +406,7 @@ void main() { testWidgets('show stream name from stream data when known', (tester) async { final streamBefore = eg.stream(name: 'old stream name'); - // TODO(#182) this test would be more realistic using a StreamUpdateEvent + // TODO(#182) this test would be more realistic using a ChannelUpdateEvent final streamAfter = ZulipStream.fromJson({ ...(deepToJson(streamBefore) as Map), 'name': 'new stream name',