mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-25 01:22:41 +00:00
subscriptionPeerId to be able to open the channel after subscribing
This commit is contained in:
parent
d17391ad9b
commit
e6e0250405
@ -541,7 +541,7 @@ public enum SendBotPaymentFormError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public enum SendBotPaymentResult {
|
public enum SendBotPaymentResult {
|
||||||
case done(receiptMessageId: MessageId?)
|
case done(receiptMessageId: MessageId?, subscriptionPeerId: PeerId?)
|
||||||
case externalVerificationRequired(url: String)
|
case externalVerificationRequired(url: String)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -585,6 +585,17 @@ func _internal_sendBotPaymentForm(account: Account, formId: Int64, source: BotPa
|
|||||||
case let .paymentResult(updates):
|
case let .paymentResult(updates):
|
||||||
account.stateManager.addUpdates(updates)
|
account.stateManager.addUpdates(updates)
|
||||||
var receiptMessageId: MessageId?
|
var receiptMessageId: MessageId?
|
||||||
|
|
||||||
|
switch source {
|
||||||
|
case .starsChatSubscription:
|
||||||
|
let chats = updates.chats.compactMap { parseTelegramGroupOrChannel(chat: $0) }
|
||||||
|
if let first = chats.first {
|
||||||
|
return .done(receiptMessageId: nil, subscriptionPeerId: first.id)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
for apiMessage in updates.messages {
|
for apiMessage in updates.messages {
|
||||||
if let message = StoreMessage(apiMessage: apiMessage, accountPeerId: account.peerId, peerIsForum: false) {
|
if let message = StoreMessage(apiMessage: apiMessage, accountPeerId: account.peerId, peerIsForum: false) {
|
||||||
for media in message.media {
|
for media in message.media {
|
||||||
@ -623,7 +634,7 @@ func _internal_sendBotPaymentForm(account: Account, formId: Int64, source: BotPa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return .done(receiptMessageId: receiptMessageId)
|
return .done(receiptMessageId: receiptMessageId, subscriptionPeerId: nil)
|
||||||
case let .paymentVerificationNeeded(url):
|
case let .paymentVerificationNeeded(url):
|
||||||
return .externalVerificationRequired(url: url)
|
return .externalVerificationRequired(url: url)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1086,9 +1086,22 @@ func _internal_sendStarsPaymentForm(account: Account, formId: Int64, source: Bot
|
|||||||
|
|
||||||
return account.network.request(Api.functions.payments.sendStarsForm(flags: flags, formId: formId, invoice: invoice))
|
return account.network.request(Api.functions.payments.sendStarsForm(flags: flags, formId: formId, invoice: invoice))
|
||||||
|> map { result -> SendBotPaymentResult in
|
|> map { result -> SendBotPaymentResult in
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
switch result {
|
switch result {
|
||||||
case let .paymentResult(updates):
|
case let .paymentResult(updates):
|
||||||
account.stateManager.addUpdates(updates)
|
account.stateManager.addUpdates(updates)
|
||||||
|
|
||||||
|
switch source {
|
||||||
|
case .starsChatSubscription:
|
||||||
|
let chats = updates.chats.compactMap { parseTelegramGroupOrChannel(chat: $0) }
|
||||||
|
if let first = chats.first {
|
||||||
|
return .done(receiptMessageId: nil, subscriptionPeerId: first.id)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
var receiptMessageId: MessageId?
|
var receiptMessageId: MessageId?
|
||||||
for apiMessage in updates.messages {
|
for apiMessage in updates.messages {
|
||||||
if let message = StoreMessage(apiMessage: apiMessage, accountPeerId: account.peerId, peerIsForum: false) {
|
if let message = StoreMessage(apiMessage: apiMessage, accountPeerId: account.peerId, peerIsForum: false) {
|
||||||
@ -1130,7 +1143,7 @@ func _internal_sendStarsPaymentForm(account: Account, formId: Int64, source: Bot
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return .done(receiptMessageId: receiptMessageId)
|
return .done(receiptMessageId: receiptMessageId, subscriptionPeerId: nil)
|
||||||
case let .paymentVerificationNeeded(url):
|
case let .paymentVerificationNeeded(url):
|
||||||
return .externalVerificationRequired(url: url)
|
return .externalVerificationRequired(url: url)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user