@@ -180,6 +180,8 @@ ZulipStream stream({
180
180
int ? canRemoveSubscribersGroup,
181
181
int ? streamWeeklyTraffic,
182
182
}) {
183
+ _checkPositive (streamId, 'stream ID' );
184
+ _checkPositive (firstMessageId, 'message ID' );
183
185
return ZulipStream (
184
186
streamId: streamId ?? _nextStreamId (),
185
187
name: name ?? 'A stream' , // TODO generate example names
@@ -334,6 +336,7 @@ StreamMessage streamMessage({
334
336
int ? timestamp,
335
337
List <MessageFlag >? flags,
336
338
}) {
339
+ _checkPositive (id, 'message ID' );
337
340
final effectiveStream = stream ?? _stream (streamId: defaultStreamMessageStreamId);
338
341
// The use of JSON here is convenient in order to delegate parts of the data
339
342
// to helper functions. The main downside is that it loses static typing
@@ -376,6 +379,7 @@ DmMessage dmMessage({
376
379
int ? timestamp,
377
380
List <MessageFlag >? flags,
378
381
}) {
382
+ _checkPositive (id, 'message ID' );
379
383
assert (! to.any ((user) => user.userId == from.userId));
380
384
return DmMessage .fromJson (deepToJson ({
381
385
..._messagePropertiesBase,
@@ -446,6 +450,7 @@ UpdateMessageEvent updateMessageEditEvent(
446
450
String ? renderedContent,
447
451
bool isMeMessage = false ,
448
452
}) {
453
+ _checkPositive (messageId, 'message ID' );
449
454
messageId ?? = origMessage.id;
450
455
return UpdateMessageEvent (
451
456
id: 0 ,
@@ -479,6 +484,8 @@ UpdateMessageEvent _updateMessageMoveEvent(
479
484
required List <MessageFlag > flags,
480
485
PropagateMode propagateMode = PropagateMode .changeOne,
481
486
}) {
487
+ _checkPositive (origStreamId, 'stream ID' );
488
+ _checkPositive (newStreamId, 'stream ID' );
482
489
assert (newTopic != origTopic
483
490
|| (newStreamId != null && newStreamId != origStreamId));
484
491
assert (messageIds.isNotEmpty);
@@ -511,6 +518,7 @@ UpdateMessageEvent updateMessageEventMoveFrom({
511
518
String ? newContent,
512
519
PropagateMode propagateMode = PropagateMode .changeOne,
513
520
}) {
521
+ _checkPositive (newStreamId, 'stream ID' );
514
522
assert (origMessages.isNotEmpty);
515
523
final origMessage = origMessages.first;
516
524
// Only present on content change.
@@ -535,6 +543,7 @@ UpdateMessageEvent updateMessageEventMoveTo({
535
543
String ? origContent,
536
544
PropagateMode propagateMode = PropagateMode .changeOne,
537
545
}) {
546
+ _checkPositive (origStreamId, 'stream ID' );
538
547
assert (newMessages.isNotEmpty);
539
548
final newMessage = newMessages.first;
540
549
// Only present on topic move.
0 commit comments