@@ -68,6 +68,20 @@ ZulipApiException apiExceptionUnauthorized({String routeName = 'someRoute'}) {
68
68
data: {}, message: 'Invalid API key' );
69
69
}
70
70
71
+ ////////////////////////////////////////////////////////////////
72
+ // Time values.
73
+ //
74
+
75
+ final timeInPast = DateTime .utc (2025 , 4 , 1 , 8 , 30 , 0 );
76
+
77
+ /// The UNIX timestamp, in UTC seconds.
78
+ ///
79
+ /// This is the commonly used format in the Zulip API for timestamps.
80
+ int utcTimestamp ([DateTime ? dateTime]) {
81
+ dateTime ?? = timeInPast;
82
+ return dateTime.toUtc ().millisecondsSinceEpoch ~ / 1000 ;
83
+ }
84
+
71
85
////////////////////////////////////////////////////////////////
72
86
// Realm-wide (or server-wide) metadata.
73
87
//
@@ -469,7 +483,7 @@ StreamMessage streamMessage({
469
483
'last_edit_timestamp' : lastEditTimestamp,
470
484
'subject' : topic ?? _defaultTopic,
471
485
'submessages' : submessages ?? [],
472
- 'timestamp' : timestamp ?? 1678139636 ,
486
+ 'timestamp' : timestamp ?? utcTimestamp () ,
473
487
'type' : 'stream' ,
474
488
}) as Map <String , dynamic >);
475
489
}
@@ -510,7 +524,7 @@ DmMessage dmMessage({
510
524
'last_edit_timestamp' : lastEditTimestamp,
511
525
'subject' : '' ,
512
526
'submessages' : submessages ?? [],
513
- 'timestamp' : timestamp ?? 1678139636 ,
527
+ 'timestamp' : timestamp ?? utcTimestamp () ,
514
528
'type' : 'private' ,
515
529
}) as Map <String , dynamic >);
516
530
}
@@ -659,7 +673,7 @@ UpdateMessageEvent updateMessageEditEvent(
659
673
messageId: messageId,
660
674
messageIds: [messageId],
661
675
flags: flags ?? origMessage.flags,
662
- editTimestamp: editTimestamp ?? 1234567890 , // TODO generate timestamp
676
+ editTimestamp: editTimestamp ?? utcTimestamp (),
663
677
moveData: null ,
664
678
origContent: 'some probably-mismatched old Markdown' ,
665
679
origRenderedContent: origMessage.content,
@@ -690,7 +704,7 @@ UpdateMessageEvent _updateMessageMoveEvent(
690
704
messageId: messageIds.first,
691
705
messageIds: messageIds,
692
706
flags: flags,
693
- editTimestamp: 1234567890 , // TODO generate timestamp
707
+ editTimestamp: utcTimestamp (),
694
708
moveData: UpdateMessageMoveData (
695
709
origStreamId: origStreamId,
696
710
newStreamId: newStreamId ?? origStreamId,
0 commit comments