Skip to content

Commit 19ae0c1

Browse files
View subscribers of a channel
1 parent 3d3b1c1 commit 19ae0c1

25 files changed

+946
-0
lines changed

assets/l10n/app_en.arb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@
116116
"@subscribeFailedTitle": {
117117
"description": "Error title when subscribing to a channel failed."
118118
},
119+
"actionSheetOptionViewChannelMembers": "View channel members",
120+
"@actionSheetOptionViewChannelMembers": {
121+
"description": "Label for navigating to a channel's members page."
122+
},
119123
"actionSheetOptionMarkChannelAsRead": "Mark channel as read",
120124
"@actionSheetOptionMarkChannelAsRead": {
121125
"description": "Label for marking a channel as read."

lib/api/route/channels.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,25 @@ Future<void> updateUserTopic(ApiConnection connection, {
127127
'visibility_policy': visibilityPolicy,
128128
});
129129
}
130+
131+
/// https://zulip.com/api/get-subscribers
132+
Future<GetSubscribersResult> getSubscribers(ApiConnection connection, {
133+
required int streamId,
134+
}) {
135+
return connection.get('getSubscribers', GetSubscribersResult.fromJson,
136+
'streams/$streamId/members', null);
137+
}
138+
139+
@JsonSerializable(fieldRename: FieldRename.snake)
140+
class GetSubscribersResult {
141+
final List<int> subscribers;
142+
143+
GetSubscribersResult({
144+
required this.subscribers,
145+
});
146+
147+
factory GetSubscribersResult.fromJson(Map<String, dynamic> json) =>
148+
_$GetSubscribersResultFromJson(json);
149+
150+
Map<String, dynamic> toJson() => _$GetSubscribersResultToJson(this);
151+
}

lib/api/route/channels.g.dart

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

lib/generated/l10n/zulip_localizations.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,12 @@ abstract class ZulipLocalizations {
305305
/// **'Failed to subscribe'**
306306
String get subscribeFailedTitle;
307307

308+
/// Label for navigating to a channel's members page.
309+
///
310+
/// In en, this message translates to:
311+
/// **'View channel members'**
312+
String get actionSheetOptionViewChannelMembers;
313+
308314
/// Label for marking a channel as read.
309315
///
310316
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
103103
@override
104104
String get subscribeFailedTitle => 'Failed to subscribe';
105105

106+
@override
107+
String get actionSheetOptionViewChannelMembers => 'View channel members';
108+
106109
@override
107110
String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read';
108111

lib/generated/l10n/zulip_localizations_de.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ class ZulipLocalizationsDe extends ZulipLocalizations {
104104
@override
105105
String get subscribeFailedTitle => 'Konnte nicht abonnieren';
106106

107+
@override
108+
String get actionSheetOptionViewChannelMembers => 'View channel members';
109+
107110
@override
108111
String get actionSheetOptionMarkChannelAsRead =>
109112
'Kanal als gelesen markieren';

lib/generated/l10n/zulip_localizations_en.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
103103
@override
104104
String get subscribeFailedTitle => 'Failed to subscribe';
105105

106+
@override
107+
String get actionSheetOptionViewChannelMembers => 'View channel members';
108+
106109
@override
107110
String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read';
108111

lib/generated/l10n/zulip_localizations_fr.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ class ZulipLocalizationsFr extends ZulipLocalizations {
105105
@override
106106
String get subscribeFailedTitle => 'Failed to subscribe';
107107

108+
@override
109+
String get actionSheetOptionViewChannelMembers => 'View channel members';
110+
108111
@override
109112
String get actionSheetOptionMarkChannelAsRead => 'Marquer le canal comme lu';
110113

lib/generated/l10n/zulip_localizations_it.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ class ZulipLocalizationsIt extends ZulipLocalizations {
104104
@override
105105
String get subscribeFailedTitle => 'Iscrizione non riuscita';
106106

107+
@override
108+
String get actionSheetOptionViewChannelMembers => 'View channel members';
109+
107110
@override
108111
String get actionSheetOptionMarkChannelAsRead => 'Segna il canale come letto';
109112

lib/generated/l10n/zulip_localizations_ja.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
102102
@override
103103
String get subscribeFailedTitle => 'チャンネルへの参加に失敗しました';
104104

105+
@override
106+
String get actionSheetOptionViewChannelMembers => 'View channel members';
107+
105108
@override
106109
String get actionSheetOptionMarkChannelAsRead => 'チャンネルを既読にする';
107110

0 commit comments

Comments
 (0)