Skip to content

Commit ecda861

Browse files
committed
api: Add serverThumbnailFormats to initial snapshot
1 parent 550f99c commit ecda861

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

lib/api/model/initial_snapshot.dart

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ class InitialSnapshot {
117117

118118
final int maxFileUploadSizeMib;
119119

120+
@JsonKey(defaultValue: []) // TODO(server-9) remove default value
121+
final List<ThumbnailFormat> serverThumbnailFormats;
122+
120123
final Uri serverEmojiDataUrl;
121124

122125
final String? realmEmptyTopicDisplayName; // TODO(server-10)
@@ -194,6 +197,7 @@ class InitialSnapshot {
194197
required this.realmPresenceDisabled,
195198
required this.realmDefaultExternalAccounts,
196199
required this.maxFileUploadSizeMib,
200+
required this.serverThumbnailFormats,
197201
required this.serverEmojiDataUrl,
198202
required this.realmEmptyTopicDisplayName,
199203
required this.realmUsers,
@@ -262,6 +266,32 @@ class RealmDefaultExternalAccount {
262266
Map<String, dynamic> toJson() => _$RealmDefaultExternalAccountToJson(this);
263267
}
264268

269+
/// An item in `server_thumbnail_formats`.
270+
///
271+
/// For docs, search for "server_thumbnail_formats:"
272+
/// in <https://zulip.com/api/register-queue>.
273+
@JsonSerializable(fieldRename: FieldRename.snake)
274+
class ThumbnailFormat {
275+
ThumbnailFormat({
276+
required this.name,
277+
required this.maxWidth,
278+
required this.maxHeight,
279+
required this.animated,
280+
required this.format,
281+
});
282+
283+
final String name;
284+
final int maxWidth;
285+
final int maxHeight;
286+
final bool animated;
287+
final String format;
288+
289+
factory ThumbnailFormat.fromJson(Map<String, dynamic> json) =>
290+
_$ThumbnailFormatFromJson(json);
291+
292+
Map<String, dynamic> toJson() => _$ThumbnailFormatToJson(this);
293+
}
294+
265295
/// An item in `recent_private_conversations`.
266296
///
267297
/// For docs, search for "recent_private_conversations:"

lib/api/model/initial_snapshot.g.dart

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

test/example_data.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1346,6 +1346,7 @@ InitialSnapshot initialSnapshot({
13461346
bool? realmPresenceDisabled,
13471347
Map<String, RealmDefaultExternalAccount>? realmDefaultExternalAccounts,
13481348
int? maxFileUploadSizeMib,
1349+
List<ThumbnailFormat>? serverThumbnailFormats,
13491350
Uri? serverEmojiDataUrl,
13501351
String? realmEmptyTopicDisplayName,
13511352
List<User>? realmUsers,
@@ -1410,6 +1411,7 @@ InitialSnapshot initialSnapshot({
14101411
realmPresenceDisabled: realmPresenceDisabled ?? false,
14111412
realmDefaultExternalAccounts: realmDefaultExternalAccounts ?? {},
14121413
maxFileUploadSizeMib: maxFileUploadSizeMib ?? 25,
1414+
serverThumbnailFormats: serverThumbnailFormats ?? [],
14131415
serverEmojiDataUrl: serverEmojiDataUrl
14141416
?? realmUrl.replace(path: '/static/emoji.json'),
14151417
realmEmptyTopicDisplayName: realmEmptyTopicDisplayName ?? defaultRealmEmptyTopicDisplayName,

0 commit comments

Comments
 (0)