Skip to content

Commit 8773806

Browse files
committed
api: Handle muted_users event
1 parent 293e711 commit 8773806

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

lib/api/model/events.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ sealed class Event {
5555
}
5656
// case 'muted_topics': … // TODO(#422) we ignore this feature on older servers
5757
case 'user_topic': return UserTopicEvent.fromJson(json);
58+
case 'muted_users': return MutedUsersEvent.fromJson(json);
5859
case 'message': return MessageEvent.fromJson(json);
5960
case 'update_message': return UpdateMessageEvent.fromJson(json);
6061
case 'delete_message': return DeleteMessageEvent.fromJson(json);
@@ -664,6 +665,24 @@ class UserTopicEvent extends Event {
664665
Map<String, dynamic> toJson() => _$UserTopicEventToJson(this);
665666
}
666667

668+
/// A Zulip event of type `muted_users`: https://zulip.com/api/get-events#muted_users
669+
@JsonSerializable(fieldRename: FieldRename.snake)
670+
class MutedUsersEvent extends Event {
671+
@override
672+
@JsonKey(includeToJson: true)
673+
String get type => 'muted_users';
674+
675+
final List<MutedUserItem> mutedUsers;
676+
677+
MutedUsersEvent({required super.id, required this.mutedUsers});
678+
679+
factory MutedUsersEvent.fromJson(Map<String, dynamic> json) =>
680+
_$MutedUsersEventFromJson(json);
681+
682+
@override
683+
Map<String, dynamic> toJson() => _$MutedUsersEventToJson(this);
684+
}
685+
667686
/// A Zulip event of type `message`: https://zulip.com/api/get-events#message
668687
@JsonSerializable(fieldRename: FieldRename.snake)
669688
class MessageEvent extends Event {

lib/api/model/events.g.dart

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/model/store.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,12 @@ class PerAccountStore extends PerAccountStoreBase with ChangeNotifier, EmojiStor
869869
_channels.handleUserTopicEvent(event);
870870
notifyListeners();
871871

872+
case MutedUsersEvent():
873+
assert(debugLog("server event: muted_users"));
874+
mutedUsers = event.mutedUsers;
875+
_mutedUserIdsSorted = _sortMutedUsers(mutedUsers);
876+
notifyListeners();
877+
872878
case MessageEvent():
873879
assert(debugLog("server event: message ${jsonEncode(event.message.toJson())}"));
874880
_messages.handleMessageEvent(event);

0 commit comments

Comments
 (0)