Swiftgram/TelegramCore/ExportMessageLink.swift
2017-12-21 16:45:01 +04:00

29 lines
992 B
Swift

#if os(macOS)
import PostboxMac
import SwiftSignalKitMac
#else
import Postbox
import SwiftSignalKit
#endif
public func exportMessageLink(account:Account, peerId:PeerId, messageId:MessageId) -> Signal<String?, Void> {
return account.postbox.modify { modifier -> Peer? in
return modifier.getPeer(peerId)
} |> mapToSignal { peer -> Signal<String?, Void> in
if let peer = peer, let input = apiInputChannel(peer) {
return account.network.request(Api.functions.channels.exportMessageLink(channel: input, id: messageId.id)) |> mapError {_ in return } |> map { res in
switch res {
case let .exportedMessageLink(link):
return link
}
} |> `catch` { _ -> Signal<String?, NoError> in
return .single(nil)
}
} else {
return .single(nil)
}
}
}