make event model const
This commit is contained in:
@@ -10,7 +10,7 @@ part 'event.g.dart';
|
|||||||
@JsonSerializable()
|
@JsonSerializable()
|
||||||
class Event {
|
class Event {
|
||||||
/// Constructor used for json serialization
|
/// Constructor used for json serialization
|
||||||
Event({
|
const Event({
|
||||||
this.type,
|
this.type,
|
||||||
this.cid,
|
this.cid,
|
||||||
this.connectionId,
|
this.connectionId,
|
||||||
@@ -27,16 +27,18 @@ class Event {
|
|||||||
this.channelId,
|
this.channelId,
|
||||||
this.channelType,
|
this.channelType,
|
||||||
this.parentId,
|
this.parentId,
|
||||||
this.extraData,
|
this.extraData = const {},
|
||||||
}) : isLocal = true;
|
this.isLocal = true,
|
||||||
|
});
|
||||||
|
|
||||||
/// Create a new instance from a json
|
/// Create a new instance from a json
|
||||||
factory Event.fromJson(Map<String, dynamic> json) =>
|
factory Event.fromJson(Map<String, dynamic> json) => _$EventFromJson({
|
||||||
_$EventFromJson(Serialization.moveToExtraDataFromRoot(
|
...Serialization.moveToExtraDataFromRoot(
|
||||||
json,
|
json,
|
||||||
topLevelFields,
|
topLevelFields,
|
||||||
))
|
),
|
||||||
..isLocal = false;
|
'is_local': false,
|
||||||
|
});
|
||||||
|
|
||||||
/// The type of the event
|
/// The type of the event
|
||||||
/// [EventType] contains some predefined constant types
|
/// [EventType] contains some predefined constant types
|
||||||
@@ -89,11 +91,11 @@ class Event {
|
|||||||
|
|
||||||
/// True if the event is generated by this client
|
/// True if the event is generated by this client
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(ignore: true)
|
||||||
bool isLocal;
|
final bool isLocal;
|
||||||
|
|
||||||
/// Map of custom channel extraData
|
/// Map of custom channel extraData
|
||||||
@JsonKey(includeIfNull: false)
|
@JsonKey(defaultValue: {})
|
||||||
final Map<String, dynamic>? extraData;
|
final Map<String, dynamic> extraData;
|
||||||
|
|
||||||
/// Known top level fields.
|
/// Known top level fields.
|
||||||
/// Useful for [Serialization] methods.
|
/// Useful for [Serialization] methods.
|
||||||
@@ -114,7 +116,6 @@ class Event {
|
|||||||
'channel_id',
|
'channel_id',
|
||||||
'channel_type',
|
'channel_type',
|
||||||
'parent_id',
|
'parent_id',
|
||||||
'is_local',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/// Serialize to json
|
/// Serialize to json
|
||||||
|
|||||||
@@ -38,39 +38,29 @@ Event _$EventFromJson(Map<String, dynamic> json) {
|
|||||||
channelId: json['channel_id'] as String?,
|
channelId: json['channel_id'] as String?,
|
||||||
channelType: json['channel_type'] as String?,
|
channelType: json['channel_type'] as String?,
|
||||||
parentId: json['parent_id'] as String?,
|
parentId: json['parent_id'] as String?,
|
||||||
extraData: json['extra_data'] as Map<String, dynamic>?,
|
extraData: json['extra_data'] as Map<String, dynamic>? ?? {},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> _$EventToJson(Event instance) {
|
Map<String, dynamic> _$EventToJson(Event instance) => <String, dynamic>{
|
||||||
final val = <String, dynamic>{
|
'type': instance.type,
|
||||||
'type': instance.type,
|
'cid': instance.cid,
|
||||||
'cid': instance.cid,
|
'channel_id': instance.channelId,
|
||||||
'channel_id': instance.channelId,
|
'channel_type': instance.channelType,
|
||||||
'channel_type': instance.channelType,
|
'connection_id': instance.connectionId,
|
||||||
'connection_id': instance.connectionId,
|
'created_at': instance.createdAt?.toIso8601String(),
|
||||||
'created_at': instance.createdAt?.toIso8601String(),
|
'me': instance.me?.toJson(),
|
||||||
'me': instance.me?.toJson(),
|
'user': instance.user?.toJson(),
|
||||||
'user': instance.user?.toJson(),
|
'message': instance.message?.toJson(),
|
||||||
'message': instance.message?.toJson(),
|
'channel': instance.channel?.toJson(),
|
||||||
'channel': instance.channel?.toJson(),
|
'member': instance.member?.toJson(),
|
||||||
'member': instance.member?.toJson(),
|
'reaction': instance.reaction?.toJson(),
|
||||||
'reaction': instance.reaction?.toJson(),
|
'total_unread_count': instance.totalUnreadCount,
|
||||||
'total_unread_count': instance.totalUnreadCount,
|
'unread_channels': instance.unreadChannels,
|
||||||
'unread_channels': instance.unreadChannels,
|
'online': instance.online,
|
||||||
'online': instance.online,
|
'parent_id': instance.parentId,
|
||||||
'parent_id': instance.parentId,
|
'extra_data': instance.extraData,
|
||||||
};
|
};
|
||||||
|
|
||||||
void writeNotNull(String key, dynamic value) {
|
|
||||||
if (value != null) {
|
|
||||||
val[key] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
writeNotNull('extra_data', instance.extraData);
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
EventChannel _$EventChannelFromJson(Map<String, dynamic> json) {
|
EventChannel _$EventChannelFromJson(Map<String, dynamic> json) {
|
||||||
return EventChannel(
|
return EventChannel(
|
||||||
|
|||||||
Reference in New Issue
Block a user