forked from Nexus/nexus
parent
dbf30c3706
commit
d37ec2878b
21 changed files with 561 additions and 147 deletions
28
lib/models/matrix_event.dart
Normal file
28
lib/models/matrix_event.dart
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
import "package:nexus/models/content/content.dart";
|
||||
import "package:nexus/models/epoch_date_time_converter.dart";
|
||||
|
||||
part "matrix_event.freezed.dart";
|
||||
part "matrix_event.g.dart";
|
||||
|
||||
/// A plain Matrix event, as sent by the server (e.g. stripped invite state).
|
||||
///
|
||||
/// Unlike [Event], this isn't stored in the gomuks database, so it has no row
|
||||
/// IDs or local content.
|
||||
@Freezed(toJson: false, fromJson: false)
|
||||
@JsonSerializable(createToJson: false)
|
||||
class const MatrixEvent({
|
||||
required final String type,
|
||||
final String? stateKey,
|
||||
final String? sender,
|
||||
final String? eventId,
|
||||
final String? roomId,
|
||||
@JsonKey(name: "origin_server_ts")
|
||||
@EpochDateTimeConverter()
|
||||
final DateTime? timestamp,
|
||||
required final Content content,
|
||||
}) with _$MatrixEvent {
|
||||
factory MatrixEvent.fromJson(Map<String, dynamic> json) =>
|
||||
_$MatrixEventFromJson(json)
|
||||
.copyWith(content: .fromEventJson(json["content"], json["type"]));
|
||||
}
|
||||
Loading…
Reference in a new issue