From e5abb8fffe444f989c541a04d3d5d2564ef7448e Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Fri, 26 Nov 2021 10:36:57 +0100 Subject: [PATCH] fix(llc): ChannelEvent.membersCount default to 0 --- .../core/models/attachment_file.freezed.dart | 74 +++++++++++-------- .../src/core/models/attachment_file.g.dart | 21 ++++-- .../lib/src/core/models/event.dart | 2 +- .../lib/src/core/models/event.g.dart | 2 +- .../stream_chat/lib/src/ws/websocket.dart | 5 +- packages/stream_chat/pubspec.yaml | 2 +- 6 files changed, 66 insertions(+), 40 deletions(-) diff --git a/packages/stream_chat/lib/src/core/models/attachment_file.freezed.dart b/packages/stream_chat/lib/src/core/models/attachment_file.freezed.dart index 4956274a..6b7b00cf 100644 --- a/packages/stream_chat/lib/src/core/models/attachment_file.freezed.dart +++ b/packages/stream_chat/lib/src/core/models/attachment_file.freezed.dart @@ -14,7 +14,7 @@ final _privateConstructorUsedError = UnsupportedError( 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); UploadState _$UploadStateFromJson(Map json) { - switch (json['runtimeType'] as String?) { + switch (json['type']) { case 'preparing': return Preparing.fromJson(json); case 'inProgress': @@ -25,8 +25,8 @@ UploadState _$UploadStateFromJson(Map json) { return Failed.fromJson(json); default: - throw CheckedFromJsonException(json, 'runtimeType', 'UploadState', - 'Invalid union type "${json['runtimeType']}"!'); + throw CheckedFromJsonException( + json, 'type', 'UploadState', 'Invalid union type "${json['type']}"!'); } } @@ -55,7 +55,7 @@ class _$UploadStateTearOff { ); } - UploadState fromJson(Map json) { + UploadState fromJson(Map json) { return UploadState.fromJson(json); } } @@ -153,11 +153,14 @@ class _$PreparingCopyWithImpl<$Res> extends _$UploadStateCopyWithImpl<$Res> /// @nodoc @JsonSerializable() class _$Preparing implements Preparing { - const _$Preparing(); + const _$Preparing({String? $type}) : $type = $type ?? 'preparing'; factory _$Preparing.fromJson(Map json) => _$$PreparingFromJson(json); + @JsonKey(name: 'type') + final String $type; + @override String toString() { return 'UploadState.preparing()'; @@ -165,7 +168,8 @@ class _$Preparing implements Preparing { @override bool operator ==(dynamic other) { - return identical(this, other) || (other is Preparing); + return identical(this, other) || + (other.runtimeType == runtimeType && other is Preparing); } @override @@ -247,7 +251,7 @@ class _$Preparing implements Preparing { @override Map toJson() { - return _$$PreparingToJson(this)..['runtimeType'] = 'preparing'; + return _$$PreparingToJson(this); } } @@ -295,7 +299,9 @@ class _$InProgressCopyWithImpl<$Res> extends _$UploadStateCopyWithImpl<$Res> /// @nodoc @JsonSerializable() class _$InProgress implements InProgress { - const _$InProgress({required this.uploaded, required this.total}); + const _$InProgress( + {required this.uploaded, required this.total, String? $type}) + : $type = $type ?? 'inProgress'; factory _$InProgress.fromJson(Map json) => _$$InProgressFromJson(json); @@ -305,6 +311,9 @@ class _$InProgress implements InProgress { @override final int total; + @JsonKey(name: 'type') + final String $type; + @override String toString() { return 'UploadState.inProgress(uploaded: $uploaded, total: $total)'; @@ -313,19 +322,15 @@ class _$InProgress implements InProgress { @override bool operator ==(dynamic other) { return identical(this, other) || - (other is InProgress && + (other.runtimeType == runtimeType && + other is InProgress && (identical(other.uploaded, uploaded) || - const DeepCollectionEquality() - .equals(other.uploaded, uploaded)) && - (identical(other.total, total) || - const DeepCollectionEquality().equals(other.total, total))); + other.uploaded == uploaded) && + (identical(other.total, total) || other.total == total)); } @override - int get hashCode => - runtimeType.hashCode ^ - const DeepCollectionEquality().hash(uploaded) ^ - const DeepCollectionEquality().hash(total); + int get hashCode => Object.hash(runtimeType, uploaded, total); @JsonKey(ignore: true) @override @@ -408,7 +413,7 @@ class _$InProgress implements InProgress { @override Map toJson() { - return _$$InProgressToJson(this)..['runtimeType'] = 'inProgress'; + return _$$InProgressToJson(this); } } @@ -419,8 +424,8 @@ abstract class InProgress implements UploadState { factory InProgress.fromJson(Map json) = _$InProgress.fromJson; - int get uploaded => throw _privateConstructorUsedError; - int get total => throw _privateConstructorUsedError; + int get uploaded; + int get total; @JsonKey(ignore: true) $InProgressCopyWith get copyWith => throw _privateConstructorUsedError; @@ -445,11 +450,14 @@ class _$SuccessCopyWithImpl<$Res> extends _$UploadStateCopyWithImpl<$Res> /// @nodoc @JsonSerializable() class _$Success implements Success { - const _$Success(); + const _$Success({String? $type}) : $type = $type ?? 'success'; factory _$Success.fromJson(Map json) => _$$SuccessFromJson(json); + @JsonKey(name: 'type') + final String $type; + @override String toString() { return 'UploadState.success()'; @@ -457,7 +465,8 @@ class _$Success implements Success { @override bool operator ==(dynamic other) { - return identical(this, other) || (other is Success); + return identical(this, other) || + (other.runtimeType == runtimeType && other is Success); } @override @@ -539,7 +548,7 @@ class _$Success implements Success { @override Map toJson() { - return _$$SuccessToJson(this)..['runtimeType'] = 'success'; + return _$$SuccessToJson(this); } } @@ -581,7 +590,8 @@ class _$FailedCopyWithImpl<$Res> extends _$UploadStateCopyWithImpl<$Res> /// @nodoc @JsonSerializable() class _$Failed implements Failed { - const _$Failed({required this.error}); + const _$Failed({required this.error, String? $type}) + : $type = $type ?? 'failed'; factory _$Failed.fromJson(Map json) => _$$FailedFromJson(json); @@ -589,6 +599,9 @@ class _$Failed implements Failed { @override final String error; + @JsonKey(name: 'type') + final String $type; + @override String toString() { return 'UploadState.failed(error: $error)'; @@ -597,14 +610,13 @@ class _$Failed implements Failed { @override bool operator ==(dynamic other) { return identical(this, other) || - (other is Failed && - (identical(other.error, error) || - const DeepCollectionEquality().equals(other.error, error))); + (other.runtimeType == runtimeType && + other is Failed && + (identical(other.error, error) || other.error == error)); } @override - int get hashCode => - runtimeType.hashCode ^ const DeepCollectionEquality().hash(error); + int get hashCode => Object.hash(runtimeType, error); @JsonKey(ignore: true) @override @@ -687,7 +699,7 @@ class _$Failed implements Failed { @override Map toJson() { - return _$$FailedToJson(this)..['runtimeType'] = 'failed'; + return _$$FailedToJson(this); } } @@ -696,7 +708,7 @@ abstract class Failed implements UploadState { factory Failed.fromJson(Map json) = _$Failed.fromJson; - String get error => throw _privateConstructorUsedError; + String get error; @JsonKey(ignore: true) $FailedCopyWith get copyWith => throw _privateConstructorUsedError; } diff --git a/packages/stream_chat/lib/src/core/models/attachment_file.g.dart b/packages/stream_chat/lib/src/core/models/attachment_file.g.dart index f36c269d..8324482d 100644 --- a/packages/stream_chat/lib/src/core/models/attachment_file.g.dart +++ b/packages/stream_chat/lib/src/core/models/attachment_file.g.dart @@ -22,31 +22,42 @@ Map _$AttachmentFileToJson(AttachmentFile instance) => 'size': instance.size, }; -_$Preparing _$$PreparingFromJson(Map json) => _$Preparing(); +_$Preparing _$$PreparingFromJson(Map json) => _$Preparing( + $type: json['type'] as String?, + ); Map _$$PreparingToJson(_$Preparing instance) => - {}; + { + 'type': instance.$type, + }; _$InProgress _$$InProgressFromJson(Map json) => _$InProgress( uploaded: json['uploaded'] as int, total: json['total'] as int, + $type: json['type'] as String?, ); Map _$$InProgressToJson(_$InProgress instance) => { 'uploaded': instance.uploaded, 'total': instance.total, + 'type': instance.$type, }; -_$Success _$$SuccessFromJson(Map json) => _$Success(); +_$Success _$$SuccessFromJson(Map json) => _$Success( + $type: json['type'] as String?, + ); -Map _$$SuccessToJson(_$Success instance) => - {}; +Map _$$SuccessToJson(_$Success instance) => { + 'type': instance.$type, + }; _$Failed _$$FailedFromJson(Map json) => _$Failed( error: json['error'] as String, + $type: json['type'] as String?, ); Map _$$FailedToJson(_$Failed instance) => { 'error': instance.error, + 'type': instance.$type, }; diff --git a/packages/stream_chat/lib/src/core/models/event.dart b/packages/stream_chat/lib/src/core/models/event.dart index aed35696..094207e8 100644 --- a/packages/stream_chat/lib/src/core/models/event.dart +++ b/packages/stream_chat/lib/src/core/models/event.dart @@ -181,7 +181,7 @@ class EventChannel extends ChannelModel { required DateTime createdAt, required DateTime updatedAt, DateTime? deletedAt, - required int memberCount, + int memberCount = 0, Map? extraData, int cooldown = 0, String? team, diff --git a/packages/stream_chat/lib/src/core/models/event.g.dart b/packages/stream_chat/lib/src/core/models/event.g.dart index 29a4482b..87c92d5d 100644 --- a/packages/stream_chat/lib/src/core/models/event.g.dart +++ b/packages/stream_chat/lib/src/core/models/event.g.dart @@ -82,7 +82,7 @@ EventChannel _$EventChannelFromJson(Map json) => EventChannel( deletedAt: json['deleted_at'] == null ? null : DateTime.parse(json['deleted_at'] as String), - memberCount: json['member_count'] as int, + memberCount: json['member_count'] as int? ?? 0, extraData: json['extra_data'] as Map?, cooldown: json['cooldown'] as int? ?? 0, team: json['team'] as String?, diff --git a/packages/stream_chat/lib/src/ws/websocket.dart b/packages/stream_chat/lib/src/ws/websocket.dart index a95eae70..82c7d7c1 100644 --- a/packages/stream_chat/lib/src/ws/websocket.dart +++ b/packages/stream_chat/lib/src/ws/websocket.dart @@ -310,7 +310,10 @@ class WebSocket with TimerHelper { Event? event; try { event = Event.fromJson(jsonData); - } catch (_) {} + } catch (e, stk) { + _logger?.warning('Error parsing an event: $e'); + _logger?.warning('Stack trace: $stk'); + } if (event == null) return; diff --git a/packages/stream_chat/pubspec.yaml b/packages/stream_chat/pubspec.yaml index 96096fd3..ff8d5356 100644 --- a/packages/stream_chat/pubspec.yaml +++ b/packages/stream_chat/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: freezed_annotation: ^0.15.0 http_parser: ^4.0.0 jose: ^0.3.2 - json_annotation: ^4.0.1 + json_annotation: ^4.3.0 logging: ^1.0.1 meta: ^1.3.0 mime: ^1.0.0