pinMessage method

Future<UpdateMessageResponse> pinMessage(
  1. Message message, {
  2. Object? timeoutOrExpirationDate,
})

Pins provided message

Implementation

Future<UpdateMessageResponse> pinMessage(
  Message message, {
  Object? /*num|DateTime*/ timeoutOrExpirationDate,
}) {
  assert(() {
    if (timeoutOrExpirationDate is! DateTime &&
        timeoutOrExpirationDate != null &&
        timeoutOrExpirationDate is! num) {
      throw ArgumentError('Invalid timeout or Expiration date');
    }
    return true;
  }(), 'Check for invalid timeout or expiration date');

  DateTime? pinExpires;
  if (timeoutOrExpirationDate is DateTime) {
    pinExpires = timeoutOrExpirationDate;
  } else if (timeoutOrExpirationDate is num) {
    pinExpires = DateTime.now().add(
      Duration(seconds: timeoutOrExpirationDate.toInt()),
    );
  }
  return partialUpdateMessage(
    message,
    set: {
      'pinned': true,
      'pin_expires': pinExpires?.toUtc().toIso8601String(),
    },
  );
}