mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
41 lines
1.2 KiB
Swift
41 lines
1.2 KiB
Swift
#if os(macOS)
|
|
import PostboxMac
|
|
import SwiftSignalKitMac
|
|
import MtProtoKitMac
|
|
import TelegramApiMac
|
|
#else
|
|
import Postbox
|
|
import SwiftSignalKit
|
|
import TelegramApi
|
|
#if BUCK
|
|
import MtProtoKit
|
|
#else
|
|
import MtProtoKitDynamic
|
|
#endif
|
|
#endif
|
|
|
|
import SyncCore
|
|
|
|
public func supportPeerId(account:Account) -> Signal<PeerId?, NoError> {
|
|
return account.network.request(Api.functions.help.getSupport())
|
|
|> map(Optional.init)
|
|
|> `catch` { _ in
|
|
return Signal<Api.help.Support?, NoError>.single(nil)
|
|
}
|
|
|> mapToSignal { support -> Signal<PeerId?, NoError> 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)
|
|
}
|
|
}
|