callbackQuery_CallbackQuery method

Future<Map> callbackQuery_CallbackQuery({
  1. required Map callbackQuery,
  2. required TelegramClientData telegramClientData,
  3. bool is_skip_reply_message = false,
  4. required bool is_lite,
  5. bool? isUseCache,
  6. Duration? durationCacheExpire,
})

Implementation

Future<Map> callbackQuery_CallbackQuery({
  required Map callbackQuery,
  required TelegramClientData telegramClientData,
  bool is_skip_reply_message = false,
  required bool is_lite,
  bool? isUseCache,
  Duration? durationCacheExpire,
}) async {
  Map message_inline_message_id = {};
  if (callbackQuery.containsKey("inline_message_id")) {
    message_inline_message_id["inline_message_id"] =
        callbackQuery["inline_message_id"];
  }
  Map message_sender_chat_json = {};

  if (callbackQuery["sender_user_id"] is int) {
    if (is_lite) {
      message_sender_chat_json["from"] = {
        "id": callbackQuery["sender_user_id"],
      };
    } else {
      var res = await request(
        parameters: {
          "@type": "getUser",
          "user_id": callbackQuery["sender_user_id"],
        },
        isUseCache: isUseCache,
        durationCacheExpire: durationCacheExpire,
        is_return_as_api: false,
        telegramClientData: telegramClientData,
      );

      message_sender_chat_json["from"] = res;
    }
  }
  Map message_chat_json = {};

  if (callbackQuery["chat_id"] is int) {
    if (is_lite) {
      message_chat_json["chat"] = {
        "id": callbackQuery["chat_id"],
      };
    } else {
      var res = await request(
        parameters: {
          "@type": "getChat",
          "chat_id": callbackQuery["chat_id"],
        },
        isUseCache: isUseCache,
        durationCacheExpire: durationCacheExpire,
        is_return_as_api: false,
        telegramClientData: telegramClientData,
      );
      message_chat_json["chat"] = res;
    }
  }
  Map new_scheme_data = {
    "id": callbackQuery["id"],
    ...message_inline_message_id,
    ...message_sender_chat_json,
    ...message_chat_json,
  };

  if (callbackQuery["message_id"] is int) {
    Map message_reply_to = await invoke(
      parameters: {
        "@type": "getMessageLocally",
        "chat_id": callbackQuery["chat_id"],
        "message_id": callbackQuery["message_id"],
      },
      isUseCache: isUseCache,
      durationCacheExpire: durationCacheExpire,
      telegramClientData: telegramClientData,
    );
    new_scheme_data["message"] = await message_Message(
      message: message_reply_to,
      telegramClientData: telegramClientData,
      is_skip_reply_message: true,
      is_lite: is_lite,
      isUseCache: isUseCache,
      durationCacheExpire: durationCacheExpire,
    );
  }
  new_scheme_data["chat_instance"] = callbackQuery["chat_instance"];
  new_scheme_data["data"] =
      utf8.decode(base64.decode(callbackQuery["payload"]["data"]));

  return new_scheme_data;
}