sendPaidMedia method

Future<Message> sendPaidMedia(
  1. ID chatId,
  2. int starCount,
  3. List<InputPaidMedia> media, {
  4. String? businessConnectionId,
  5. String? payload,
  6. String? caption,
  7. ParseMode? parseMode,
  8. List<MessageEntity>? captionEntities,
  9. bool? showCaptionAboveMedia,
  10. bool? disableNotification,
  11. bool? protectContent,
  12. bool? allowPaidBroadcast,
  13. ReplyParameters? replyParameters,
  14. ReplyMarkup? replyMarkup,
  15. int? directMessagesTopicId,
  16. SuggestedPostParameters? suggestedPostParameters,
})

Implementation

Future<Message> sendPaidMedia(
  ID chatId,
  int starCount,
  List<InputPaidMedia> media, {
  String? businessConnectionId,
  String? payload,
  String? caption,
  ParseMode? parseMode,
  List<MessageEntity>? captionEntities,
  bool? showCaptionAboveMedia,
  bool? disableNotification,
  bool? protectContent,
  bool? allowPaidBroadcast,
  ReplyParameters? replyParameters,
  ReplyMarkup? replyMarkup,
  int? directMessagesTopicId,
  SuggestedPostParameters? suggestedPostParameters,
}) async {
  final params = <String, dynamic>{
    'chat_id': chatId,
    'star_count': starCount,
    'media': media,
    'business_connection_id': ?businessConnectionId,
    'payload': ?payload,
    'caption': ?caption,
    'parse_mode': ?parseMode,
    'caption_entities': ?captionEntities,
    'show_caption_above_media': ?showCaptionAboveMedia,
    'disable_notification': ?disableNotification,
    'protect_content': ?protectContent,
    'allow_paid_broadcast': ?allowPaidBroadcast,
    'reply_parameters': ?replyParameters,
    'reply_markup': ?replyMarkup,
    'direct_messages_topic_id': ?directMessagesTopicId,
    'suggested_post_parameters': ?suggestedPostParameters,
  };

  final files = _prepareFiles(
    media.expand((e) => e.getInputFiles()).map((e) => (null, e)),
  );

  final response = await _makeRequest<Map<String, dynamic>>(
    APIMethod.sendPaidMedia.name,
    Payload(params, files),
  );

  return Message.fromJson(response);
}