import Foundation import Postbox import SwiftSignalKit import TelegramApi func _internal_confirmBotConnectionReview(account: Account, botId: PeerId) -> Signal { return account.network.request(Api.functions.account.getConnectedBots()) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) } |> mapToSignal { result -> Signal in guard let result else { return .complete() } return account.postbox.transaction { transaction -> Api.InputUser? in switch result { case let .connectedBots(connectedBotsData): updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: AccumulatedPeers(users: connectedBotsData.users)) } return transaction.getPeer(botId).flatMap(apiInputUser) } |> mapToSignal { inputUser -> Signal in guard let inputUser else { return .complete() } return account.network.request(Api.functions.account.confirmBotConnection(botId: inputUser)) |> `catch` { _ -> Signal in return .single(.boolFalse) } |> ignoreValues } } }