Skip to content

Commit 37a5948

Browse files
sm-sayedignprice
authored andcommitted
api: Add muted_users event
1 parent 5caa859 commit 37a5948

File tree

5 files changed

+44
-1
lines changed

5 files changed

+44
-1
lines changed

lib/api/model/events.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ sealed class Event {
6262
}
6363
// case 'muted_topics': … // TODO(#422) we ignore this feature on older servers
6464
case 'user_topic': return UserTopicEvent.fromJson(json);
65+
case 'muted_users': return MutedUsersEvent.fromJson(json);
6566
case 'message': return MessageEvent.fromJson(json);
6667
case 'update_message': return UpdateMessageEvent.fromJson(json);
6768
case 'delete_message': return DeleteMessageEvent.fromJson(json);
@@ -733,6 +734,24 @@ class UserTopicEvent extends Event {
733734
Map<String, dynamic> toJson() => _$UserTopicEventToJson(this);
734735
}
735736

737+
/// A Zulip event of type `muted_users`: https://zulip.com/api/get-events#muted_users
738+
@JsonSerializable(fieldRename: FieldRename.snake)
739+
class MutedUsersEvent extends Event {
740+
@override
741+
@JsonKey(includeToJson: true)
742+
String get type => 'muted_users';
743+
744+
final List<MutedUserItem> mutedUsers;
745+
746+
MutedUsersEvent({required super.id, required this.mutedUsers});
747+
748+
factory MutedUsersEvent.fromJson(Map<String, dynamic> json) =>
749+
_$MutedUsersEventFromJson(json);
750+
751+
@override
752+
Map<String, dynamic> toJson() => _$MutedUsersEventToJson(this);
753+
}
754+
736755
/// A Zulip event of type `message`: https://zulip.com/api/get-events#message
737756
@JsonSerializable(fieldRename: FieldRename.snake)
738757
class MessageEvent extends Event {

lib/api/model/events.g.dart

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

lib/api/model/model.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class CustomProfileFieldExternalAccountData {
110110
Map<String, dynamic> toJson() => _$CustomProfileFieldExternalAccountDataToJson(this);
111111
}
112112

113-
/// An item in the [InitialSnapshot.mutedUsers].
113+
/// An item in the [InitialSnapshot.mutedUsers] or [MutedUsersEvent].
114114
///
115115
/// For docs, search for "muted_users:"
116116
/// in <https://zulip.com/api/register-queue>.

lib/model/store.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,10 @@ class PerAccountStore extends PerAccountStoreBase with ChangeNotifier, EmojiStor
949949
assert(debugLog("server event: reaction/${event.op}"));
950950
_messages.handleReactionEvent(event);
951951

952+
case MutedUsersEvent():
953+
// TODO handle
954+
break;
955+
952956
case UnexpectedEvent():
953957
assert(debugLog("server event: ${jsonEncode(event.toJson())}")); // TODO log better
954958
}

test/example_data.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,11 @@ UserTopicEvent userTopicEvent(
814814
);
815815
}
816816

817+
MutedUsersEvent mutedUsersEvent(List<int> userIds) {
818+
return MutedUsersEvent(id: 1,
819+
mutedUsers: userIds.map((id) => MutedUserItem(id: id)).toList());
820+
}
821+
817822
MessageEvent messageEvent(Message message, {int? localMessageId}) =>
818823
MessageEvent(id: 0, message: message, localMessageId: localMessageId?.toString());
819824

0 commit comments

Comments
 (0)