mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios
This commit is contained in:
commit
bcbcc94b58
@ -7,7 +7,7 @@ import TelegramApi
|
|||||||
public enum BotPaymentInvoiceSource {
|
public enum BotPaymentInvoiceSource {
|
||||||
case message(MessageId)
|
case message(MessageId)
|
||||||
case slug(String)
|
case slug(String)
|
||||||
case premiumGiftCode(peerIds: [EnginePeer.Id], boostPeer: EnginePeer.Id?, quantity: Int32, option: PremiumGiftCodeOption)
|
case premiumGiveaway(boostPeer: EnginePeer.Id, additionalPeerIds: [EnginePeer.Id], countries: [String], onlyNewSubscribers: Bool, randomId: Int64, untilDate: Int32, currency: String, amount: Int64, option: PremiumGiftCodeOption)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -214,23 +214,27 @@ private func _internal_parseInputInvoice(transaction: Transaction, source: BotPa
|
|||||||
return .inputInvoiceMessage(peer: inputPeer, msgId: messageId.id)
|
return .inputInvoiceMessage(peer: inputPeer, msgId: messageId.id)
|
||||||
case let .slug(slug):
|
case let .slug(slug):
|
||||||
return .inputInvoiceSlug(slug: slug)
|
return .inputInvoiceSlug(slug: slug)
|
||||||
case let .premiumGiftCode(peerIds, boostPeerId, quantity, option):
|
case let .premiumGiveaway(boostPeerId, additionalPeerIds, countries, onlyNewSubscribers, randomId, untilDate, currency, amount, option):
|
||||||
|
guard let peer = transaction.getPeer(boostPeerId), let apiBoostPeer = apiInputPeer(peer) else {
|
||||||
var flags: Int32 = 0
|
return nil
|
||||||
var apiBoostPeer: Api.InputPeer?
|
|
||||||
var apiInputUsers: [Api.InputUser] = []
|
|
||||||
|
|
||||||
for peerId in peerIds {
|
|
||||||
if let user = transaction.getPeer(peerId), let apiUser = apiInputUser(user) {
|
|
||||||
apiInputUsers.append(apiUser)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
var flags: Int32 = 0
|
||||||
if let boostPeerId = boostPeerId, let boostPeer = transaction.getPeer(boostPeerId), let apiPeer = apiInputPeer(boostPeer) {
|
if onlyNewSubscribers {
|
||||||
apiBoostPeer = apiPeer
|
|
||||||
flags |= (1 << 0)
|
flags |= (1 << 0)
|
||||||
}
|
}
|
||||||
let input: Api.InputStorePaymentPurpose = .inputStorePaymentPremiumGiftCode(flags: flags, users: apiInputUsers, boostPeer: apiBoostPeer, currency: option.currency, amount: option.amount)
|
var additionalPeers: [Api.InputPeer] = []
|
||||||
|
if !additionalPeerIds.isEmpty {
|
||||||
|
flags |= (1 << 1)
|
||||||
|
for peerId in additionalPeerIds {
|
||||||
|
if let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer) {
|
||||||
|
additionalPeers.append(inputPeer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !countries.isEmpty {
|
||||||
|
flags |= (1 << 2)
|
||||||
|
}
|
||||||
|
let input: Api.InputStorePaymentPurpose = .inputStorePaymentPremiumGiveaway(flags: flags, boostPeer: apiBoostPeer, additionalPeers: additionalPeers, countriesIso2: countries, randomId: randomId, untilDate: untilDate, currency: currency, amount: amount)
|
||||||
|
|
||||||
flags = 0
|
flags = 0
|
||||||
|
|
||||||
@ -241,7 +245,7 @@ private func _internal_parseInputInvoice(transaction: Transaction, source: BotPa
|
|||||||
flags |= (1 << 1)
|
flags |= (1 << 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
let option: Api.PremiumGiftCodeOption = .premiumGiftCodeOption(flags: flags, users: quantity, months: option.months, storeProduct: option.storeProductId, storeQuantity: option.storeQuantity, currency: option.currency, amount: option.amount)
|
let option: Api.PremiumGiftCodeOption = .premiumGiftCodeOption(flags: flags, users: option.users, months: option.months, storeProduct: option.storeProductId, storeQuantity: option.storeQuantity, currency: option.currency, amount: option.amount)
|
||||||
|
|
||||||
return .inputInvoicePremiumGiftCode(purpose: input, option: option)
|
return .inputInvoicePremiumGiftCode(purpose: input, option: option)
|
||||||
}
|
}
|
||||||
@ -522,8 +526,12 @@ func _internal_sendBotPaymentForm(account: Account, formId: Int64, source: BotPa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .premiumGiftCode:
|
case let .premiumGiveaway(_, _, _, _, randomId, _, _, _, _):
|
||||||
receiptMessageId = nil
|
if message.globallyUniqueId == randomId {
|
||||||
|
if case let .Id(id) = message.id {
|
||||||
|
receiptMessageId = id
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user