fix editFolderLink

This commit is contained in:
Mike Renoir 2023-03-24 16:14:37 +04:00
parent 45e4728ae0
commit c7500039fa
2 changed files with 15 additions and 4 deletions

View File

@ -139,8 +139,8 @@ public enum EditChatFolderLinkError {
case generic
}
func _internal_editChatFolderLink(account: Account, filterId: Int32, link: ExportedChatFolderLink, title: String?, peerIds: [EnginePeer.Id]?, revoke: Bool) -> Signal<Never, EditChatFolderLinkError> {
return account.postbox.transaction { transaction -> Signal<Never, EditChatFolderLinkError> in
func _internal_editChatFolderLink(account: Account, filterId: Int32, link: ExportedChatFolderLink, title: String?, peerIds: [EnginePeer.Id]?, revoke: Bool) -> Signal<ExportedChatFolderLink, EditChatFolderLinkError> {
return account.postbox.transaction { transaction -> Signal<ExportedChatFolderLink, EditChatFolderLinkError> in
var flags: Int32 = 0
if revoke {
flags |= 1 << 0
@ -150,13 +150,24 @@ func _internal_editChatFolderLink(account: Account, filterId: Int32, link: Expor
}
var peers: [Api.InputPeer]?
if let peerIds = peerIds {
flags |= 1 << 2
peers = peerIds.compactMap(transaction.getPeer).compactMap(apiInputPeer)
}
return account.network.request(Api.functions.communities.editExportedInvite(flags: flags, community: .inputCommunityDialogFilter(filterId: filterId), slug: link.slug, title: title, peers: peers))
|> mapError { _ -> EditChatFolderLinkError in
return .generic
}
|> ignoreValues
|> map { result in
switch result {
case let .exportedCommunityInvite(flags, title, url, peers):
return ExportedChatFolderLink(
title: title,
link: url,
peerIds: peers.map(\.peerId),
isRevoked: (flags & (1 << 0)) != 0
)
}
}
}
|> castError(EditChatFolderLinkError.self)
|> switchToLatest

View File

@ -1034,7 +1034,7 @@ public extension TelegramEngine {
return _internal_getExportedChatFolderLinks(account: self.account, id: id)
}
public func editChatFolderLink(filterId: Int32, link: ExportedChatFolderLink, title: String?, peerIds: [EnginePeer.Id]?, revoke: Bool) -> Signal<Never, EditChatFolderLinkError> {
public func editChatFolderLink(filterId: Int32, link: ExportedChatFolderLink, title: String?, peerIds: [EnginePeer.Id]?, revoke: Bool) -> Signal<ExportedChatFolderLink, EditChatFolderLinkError> {
return _internal_editChatFolderLink(account: self.account, filterId: filterId, link: link, title: title, peerIds: peerIds, revoke: revoke)
}