Skip to content

Commit 477a777

Browse files
PIG208gnprice
authored andcommitted
api: Add saved_snippets events
1 parent e5f703a commit 477a777

File tree

3 files changed

+122
-0
lines changed

3 files changed

+122
-0
lines changed

lib/api/model/events.dart

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ sealed class Event {
3737
case 'update': return RealmUserUpdateEvent.fromJson(json);
3838
default: return UnexpectedEvent.fromJson(json);
3939
}
40+
case 'saved_snippets':
41+
switch (json['op'] as String) {
42+
case 'add': return SavedSnippetsAddEvent.fromJson(json);
43+
case 'update': return SavedSnippetsUpdateEvent.fromJson(json);
44+
case 'remove': return SavedSnippetsRemoveEvent.fromJson(json);
45+
default: return UnexpectedEvent.fromJson(json);
46+
}
4047
case 'stream':
4148
switch (json['op'] as String) {
4249
case 'create': return ChannelCreateEvent.fromJson(json);
@@ -336,6 +343,68 @@ class RealmUserUpdateEvent extends RealmUserEvent {
336343
Map<String, dynamic> toJson() => _$RealmUserUpdateEventToJson(this);
337344
}
338345

346+
/// A Zulip event of type `saved_snippets`: https://zulip.com/api/get-events#saved_snippets-add
347+
sealed class SavedSnippetsEvent extends Event {
348+
@override
349+
@JsonKey(includeToJson: true)
350+
String get type => 'saved_snippets';
351+
352+
String get op;
353+
354+
SavedSnippetsEvent({required super.id});
355+
}
356+
357+
/// A [SavedSnippetsEvent] with op `add`: https://zulip.com/api/get-events#saved_snippets-add
358+
@JsonSerializable(fieldRename: FieldRename.snake)
359+
class SavedSnippetsAddEvent extends SavedSnippetsEvent {
360+
@override
361+
String get op => 'add';
362+
363+
final SavedSnippet savedSnippet;
364+
365+
SavedSnippetsAddEvent({required super.id, required this.savedSnippet});
366+
367+
factory SavedSnippetsAddEvent.fromJson(Map<String, dynamic> json) =>
368+
_$SavedSnippetsAddEventFromJson(json);
369+
370+
@override
371+
Map<String, dynamic> toJson() => _$SavedSnippetsAddEventToJson(this);
372+
}
373+
374+
/// A [SavedSnippetsEvent] with op `update`: https://zulip.com/api/get-events#saved_snippets-update
375+
@JsonSerializable(fieldRename: FieldRename.snake)
376+
class SavedSnippetsUpdateEvent extends SavedSnippetsEvent {
377+
@override
378+
String get op => 'update';
379+
380+
final SavedSnippet savedSnippet;
381+
382+
SavedSnippetsUpdateEvent({required super.id, required this.savedSnippet});
383+
384+
factory SavedSnippetsUpdateEvent.fromJson(Map<String, dynamic> json) =>
385+
_$SavedSnippetsUpdateEventFromJson(json);
386+
387+
@override
388+
Map<String, dynamic> toJson() => _$SavedSnippetsUpdateEventToJson(this);
389+
}
390+
391+
/// A [SavedSnippetsEvent] with op `remove`: https://zulip.com/api/get-events#saved_snippets-remove
392+
@JsonSerializable(fieldRename: FieldRename.snake)
393+
class SavedSnippetsRemoveEvent extends SavedSnippetsEvent {
394+
@override
395+
String get op => 'remove';
396+
397+
final int savedSnippetId;
398+
399+
SavedSnippetsRemoveEvent({required super.id, required this.savedSnippetId});
400+
401+
factory SavedSnippetsRemoveEvent.fromJson(Map<String, dynamic> json) =>
402+
_$SavedSnippetsRemoveEventFromJson(json);
403+
404+
@override
405+
Map<String, dynamic> toJson() => _$SavedSnippetsRemoveEventToJson(this);
406+
}
407+
339408
/// A Zulip event of type `stream`.
340409
///
341410
/// The corresponding API docs are in several places for

lib/api/model/events.g.dart

Lines changed: 49 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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,10 @@ class PerAccountStore extends PerAccountStoreBase with ChangeNotifier, EmojiStor
871871
autocompleteViewManager.handleRealmUserUpdateEvent(event);
872872
notifyListeners();
873873

874+
case SavedSnippetsEvent():
875+
// TODO handle
876+
break;
877+
874878
case ChannelEvent():
875879
assert(debugLog("server event: stream/${event.op}"));
876880
_channels.handleChannelEvent(event);

0 commit comments

Comments
 (0)