Skip to content

Commit db5f9bd

Browse files
committed
channel: Add isArchived field
1 parent dd70226 commit db5f9bd

File tree

6 files changed

+27
-0
lines changed

6 files changed

+27
-0
lines changed

lib/api/model/events.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,9 @@ class ChannelUpdateEvent extends ChannelEvent {
664664
final value = json['value'];
665665
switch (ChannelPropertyName.fromRawString(json['property'] as String)) {
666666
case ChannelPropertyName.name:
667+
return value as String;
668+
case ChannelPropertyName.isArchived:
669+
return value as bool;
667670
case ChannelPropertyName.description:
668671
return value as String;
669672
case ChannelPropertyName.firstMessageId:

lib/api/model/events.g.dart

Lines changed: 1 addition & 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: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,12 @@ class ZulipStream {
627627

628628
final int streamId;
629629
String name;
630+
631+
// Servers that don't send this property will only send non-archived channels;
632+
// default to false for those servers.
633+
@JsonKey(defaultValue: false)
634+
bool isArchived; // TODO(server-10) remove default and its comment
635+
630636
String description;
631637
String renderedDescription;
632638

@@ -652,6 +658,7 @@ class ZulipStream {
652658
ZulipStream({
653659
required this.streamId,
654660
required this.name,
661+
required this.isArchived,
655662
required this.description,
656663
required this.renderedDescription,
657664
required this.dateCreated,
@@ -674,6 +681,7 @@ class ZulipStream {
674681
streamId: subscription.streamId,
675682
name: subscription.name,
676683
description: subscription.description,
684+
isArchived: subscription.isArchived,
677685
renderedDescription: subscription.renderedDescription,
678686
dateCreated: subscription.dateCreated,
679687
firstMessageId: subscription.firstMessageId,
@@ -706,6 +714,7 @@ class ZulipStream {
706714
enum ChannelPropertyName {
707715
// streamId is immutable
708716
name,
717+
isArchived,
709718
description,
710719
// renderedDescription is updated via its own [ChannelUpdateEvent] field
711720
// dateCreated is immutable
@@ -791,6 +800,7 @@ class Subscription extends ZulipStream {
791800
required super.streamId,
792801
required super.name,
793802
required super.description,
803+
required super.isArchived,
794804
required super.renderedDescription,
795805
required super.dateCreated,
796806
required super.firstMessageId,

lib/api/model/model.g.dart

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

lib/model/channel.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,8 @@ class ChannelStoreImpl extends HasUserStore with ChannelStore {
366366
stream.name = event.value as String;
367367
streamsByName.remove(streamName);
368368
streamsByName[stream.name] = stream;
369+
case ChannelPropertyName.isArchived:
370+
stream.isArchived = event.value as bool;
369371
case ChannelPropertyName.description:
370372
stream.description = event.value as String;
371373
case ChannelPropertyName.firstMessageId:

test/example_data.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ ZulipStream stream({
440440
int? streamId,
441441
String? name,
442442
String? description,
443+
bool? isArchived,
443444
String? renderedDescription,
444445
int? dateCreated,
445446
int? firstMessageId,
@@ -462,6 +463,7 @@ ZulipStream stream({
462463
return ZulipStream(
463464
streamId: effectiveStreamId,
464465
name: effectiveName,
466+
isArchived: isArchived ?? false,
465467
description: effectiveDescription,
466468
renderedDescription: renderedDescription ?? '<p>$effectiveDescription</p>',
467469
dateCreated: dateCreated ?? 1686774898,
@@ -504,6 +506,7 @@ Subscription subscription(
504506
return Subscription(
505507
streamId: stream.streamId,
506508
name: stream.name,
509+
isArchived: stream.isArchived,
507510
description: stream.description,
508511
renderedDescription: stream.renderedDescription,
509512
dateCreated: stream.dateCreated,
@@ -1178,6 +1181,9 @@ ChannelUpdateEvent channelUpdateEvent(
11781181
}) {
11791182
switch (property) {
11801183
case ChannelPropertyName.name:
1184+
assert(value is String);
1185+
case ChannelPropertyName.isArchived:
1186+
assert(value is bool);
11811187
case ChannelPropertyName.description:
11821188
assert(value is String);
11831189
case ChannelPropertyName.firstMessageId:

0 commit comments

Comments
 (0)