Merge commit '45e7cc9d284bfc5e65c03b82719aa847254ce513'

This commit is contained in:
Ali
2023-01-13 01:36:28 +04:00
5 changed files with 69 additions and 5 deletions

View File

@@ -229,3 +229,37 @@ func _internal_addChannelMembers(account: Account, peerId: PeerId, memberIds: [P
return signal
|> switchToLatest
}
public enum SendBotRequestedPeerError {
case generic
}
func _internal_sendBotRequestedPeer(account: Account, peerId: PeerId, messageId: MessageId, buttonId: Int32, requestedPeerId: PeerId) -> Signal<Void, SendBotRequestedPeerError> {
let signal = account.postbox.transaction { transaction -> Signal<Void, SendBotRequestedPeerError> in
if let peer = transaction.getPeer(peerId), let requestedPeer = transaction.getPeer(requestedPeerId) {
let inputPeer = apiInputPeer(peer)
let inputRequestedPeer = apiInputPeer(requestedPeer)
if let inputPeer = inputPeer, let inputRequestedPeer = inputRequestedPeer {
let signal = account.network.request(Api.functions.messages.sendBotRequestedPeer(peer: inputPeer, msgId: messageId.id, buttonId: buttonId, requestedPeer: inputRequestedPeer))
|> mapError { error -> SendBotRequestedPeerError in
return .generic
}
|> map { result in
account.stateManager.addUpdates(result)
}
return signal
}
}
return .single(Void())
}
|> castError(SendBotRequestedPeerError.self)
return signal
|> switchToLatest
}

View File

@@ -439,6 +439,10 @@ public extension TelegramEngine {
public func addChannelMember(peerId: PeerId, memberId: PeerId) -> Signal<(ChannelParticipant?, RenderedChannelParticipant), AddChannelMemberError> {
return _internal_addChannelMember(account: self.account, peerId: peerId, memberId: memberId)
}
public func sendBotRequestedPeer(messageId: MessageId, buttonId: Int32, requestedPeerId: PeerId) -> Signal<Void, SendBotRequestedPeerError> {
return _internal_sendBotRequestedPeer(account: self.account, peerId: messageId.peerId, messageId: messageId, buttonId: buttonId, requestedPeerId: requestedPeerId)
}
public func addChannelMembers(peerId: PeerId, memberIds: [PeerId]) -> Signal<Void, AddChannelMemberError> {
return _internal_addChannelMembers(account: self.account, peerId: peerId, memberIds: memberIds)