import Postbox import SwiftSignalKit import TelegramApi import MtProtoKit import SyncCore public func supportPeerId(account:Account) -> Signal { return account.network.request(Api.functions.help.getSupport()) |> map(Optional.init) |> `catch` { _ in return Signal.single(nil) } |> mapToSignal { support -> Signal in if let support = support { switch support { case let .support(phoneNumber: _, user: user): let user = TelegramUser(user: user) return account.postbox.transaction { transaction -> PeerId in updatePeers(transaction: transaction, peers: [user], update: { (previous, updated) -> Peer? in return updated }) return user.id } } } return .single(nil) } }