From 64d8fe6ba0e503418c85b9bd3bc0d4207e7ad2d4 Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Mon, 19 Jan 2026 00:14:18 +0800 Subject: [PATCH] Refactor constructor use sites for types 520-539 to struct pattern Co-Authored-By: Claude Opus 4.5 --- submodules/TelegramApi/Sources/Api37.swift | 290 ++++++++++++++++-- .../Statistics/StarsRevenueStatistics.swift | 9 +- .../TelegramEngine/Messages/BotWebView.swift | 3 +- .../Payments/BotPaymentForm.swift | 9 +- .../TelegramEngine/Payments/StarGifts.swift | 29 +- .../Payments/StarGiftsAuctions.swift | 9 +- .../Payments/StarGiftsCollections.swift | 5 +- .../TelegramEngine/Payments/Stars.swift | 18 +- 8 files changed, 323 insertions(+), 49 deletions(-) diff --git a/submodules/TelegramApi/Sources/Api37.swift b/submodules/TelegramApi/Sources/Api37.swift index 8b7a5ad834..c8c07b4f61 100644 --- a/submodules/TelegramApi/Sources/Api37.swift +++ b/submodules/TelegramApi/Sources/Api37.swift @@ -97,8 +97,20 @@ public extension Api.payments { } public extension Api.payments { indirect enum PaymentResult: TypeConstructorDescription { - case paymentResult(updates: Api.Updates) - case paymentVerificationNeeded(url: String) + public class Cons_paymentResult { + public var updates: Api.Updates + public init(updates: Api.Updates) { + self.updates = updates + } + } + public class Cons_paymentVerificationNeeded { + public var url: String + public init(url: String) { + self.url = url + } + } + case paymentResult(Cons_paymentResult) + case paymentVerificationNeeded(Cons_paymentVerificationNeeded) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -134,7 +146,29 @@ public extension Api.payments { } public extension Api.payments { enum ResaleStarGifts: TypeConstructorDescription { - case resaleStarGifts(flags: Int32, count: Int32, gifts: [Api.StarGift], nextOffset: String?, attributes: [Api.StarGiftAttribute]?, attributesHash: Int64?, chats: [Api.Chat], counters: [Api.StarGiftAttributeCounter]?, users: [Api.User]) + public class Cons_resaleStarGifts { + public var flags: Int32 + public var count: Int32 + public var gifts: [Api.StarGift] + public var nextOffset: String? + public var attributes: [Api.StarGiftAttribute]? + public var attributesHash: Int64? + public var chats: [Api.Chat] + public var counters: [Api.StarGiftAttributeCounter]? + public var users: [Api.User] + public init(flags: Int32, count: Int32, gifts: [Api.StarGift], nextOffset: String?, attributes: [Api.StarGiftAttribute]?, attributesHash: Int64?, chats: [Api.Chat], counters: [Api.StarGiftAttributeCounter]?, users: [Api.User]) { + self.flags = flags + self.count = count + self.gifts = gifts + self.nextOffset = nextOffset + self.attributes = attributes + self.attributesHash = attributesHash + self.chats = chats + self.counters = counters + self.users = users + } + } + case resaleStarGifts(Cons_resaleStarGifts) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -163,7 +197,15 @@ public extension Api.payments { } public extension Api.payments { enum SavedInfo: TypeConstructorDescription { - case savedInfo(flags: Int32, savedInfo: Api.PaymentRequestedInfo?) + public class Cons_savedInfo { + public var flags: Int32 + public var savedInfo: Api.PaymentRequestedInfo? + public init(flags: Int32, savedInfo: Api.PaymentRequestedInfo?) { + self.flags = flags + self.savedInfo = savedInfo + } + } + case savedInfo(Cons_savedInfo) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -192,7 +234,25 @@ public extension Api.payments { } public extension Api.payments { enum SavedStarGifts: TypeConstructorDescription { - case savedStarGifts(flags: Int32, count: Int32, chatNotificationsEnabled: Api.Bool?, gifts: [Api.SavedStarGift], nextOffset: String?, chats: [Api.Chat], users: [Api.User]) + public class Cons_savedStarGifts { + public var flags: Int32 + public var count: Int32 + public var chatNotificationsEnabled: Api.Bool? + public var gifts: [Api.SavedStarGift] + public var nextOffset: String? + public var chats: [Api.Chat] + public var users: [Api.User] + public init(flags: Int32, count: Int32, chatNotificationsEnabled: Api.Bool?, gifts: [Api.SavedStarGift], nextOffset: String?, chats: [Api.Chat], users: [Api.User]) { + self.flags = flags + self.count = count + self.chatNotificationsEnabled = chatNotificationsEnabled + self.gifts = gifts + self.nextOffset = nextOffset + self.chats = chats + self.users = users + } + } + case savedStarGifts(Cons_savedStarGifts) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -221,7 +281,17 @@ public extension Api.payments { } public extension Api.payments { enum StarGiftActiveAuctions: TypeConstructorDescription { - case starGiftActiveAuctions(auctions: [Api.StarGiftActiveAuctionState], users: [Api.User], chats: [Api.Chat]) + public class Cons_starGiftActiveAuctions { + public var auctions: [Api.StarGiftActiveAuctionState] + public var users: [Api.User] + public var chats: [Api.Chat] + public init(auctions: [Api.StarGiftActiveAuctionState], users: [Api.User], chats: [Api.Chat]) { + self.auctions = auctions + self.users = users + self.chats = chats + } + } + case starGiftActiveAuctions(Cons_starGiftActiveAuctions) case starGiftActiveAuctionsNotModified public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { @@ -258,7 +328,17 @@ public extension Api.payments { } public extension Api.payments { enum StarGiftAuctionAcquiredGifts: TypeConstructorDescription { - case starGiftAuctionAcquiredGifts(gifts: [Api.StarGiftAuctionAcquiredGift], users: [Api.User], chats: [Api.Chat]) + public class Cons_starGiftAuctionAcquiredGifts { + public var gifts: [Api.StarGiftAuctionAcquiredGift] + public var users: [Api.User] + public var chats: [Api.Chat] + public init(gifts: [Api.StarGiftAuctionAcquiredGift], users: [Api.User], chats: [Api.Chat]) { + self.gifts = gifts + self.users = users + self.chats = chats + } + } + case starGiftAuctionAcquiredGifts(Cons_starGiftAuctionAcquiredGifts) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -287,7 +367,23 @@ public extension Api.payments { } public extension Api.payments { enum StarGiftAuctionState: TypeConstructorDescription { - case starGiftAuctionState(gift: Api.StarGift, state: Api.StarGiftAuctionState, userState: Api.StarGiftAuctionUserState, timeout: Int32, users: [Api.User], chats: [Api.Chat]) + public class Cons_starGiftAuctionState { + public var gift: Api.StarGift + public var state: Api.StarGiftAuctionState + public var userState: Api.StarGiftAuctionUserState + public var timeout: Int32 + public var users: [Api.User] + public var chats: [Api.Chat] + public init(gift: Api.StarGift, state: Api.StarGiftAuctionState, userState: Api.StarGiftAuctionUserState, timeout: Int32, users: [Api.User], chats: [Api.Chat]) { + self.gift = gift + self.state = state + self.userState = userState + self.timeout = timeout + self.users = users + self.chats = chats + } + } + case starGiftAuctionState(Cons_starGiftAuctionState) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -316,7 +412,13 @@ public extension Api.payments { } public extension Api.payments { enum StarGiftCollections: TypeConstructorDescription { - case starGiftCollections(collections: [Api.StarGiftCollection]) + public class Cons_starGiftCollections { + public var collections: [Api.StarGiftCollection] + public init(collections: [Api.StarGiftCollection]) { + self.collections = collections + } + } + case starGiftCollections(Cons_starGiftCollections) case starGiftCollectionsNotModified public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { @@ -353,7 +455,13 @@ public extension Api.payments { } public extension Api.payments { enum StarGiftUpgradeAttributes: TypeConstructorDescription { - case starGiftUpgradeAttributes(attributes: [Api.StarGiftAttribute]) + public class Cons_starGiftUpgradeAttributes { + public var attributes: [Api.StarGiftAttribute] + public init(attributes: [Api.StarGiftAttribute]) { + self.attributes = attributes + } + } + case starGiftUpgradeAttributes(Cons_starGiftUpgradeAttributes) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -382,7 +490,17 @@ public extension Api.payments { } public extension Api.payments { enum StarGiftUpgradePreview: TypeConstructorDescription { - case starGiftUpgradePreview(sampleAttributes: [Api.StarGiftAttribute], prices: [Api.StarGiftUpgradePrice], nextPrices: [Api.StarGiftUpgradePrice]) + public class Cons_starGiftUpgradePreview { + public var sampleAttributes: [Api.StarGiftAttribute] + public var prices: [Api.StarGiftUpgradePrice] + public var nextPrices: [Api.StarGiftUpgradePrice] + public init(sampleAttributes: [Api.StarGiftAttribute], prices: [Api.StarGiftUpgradePrice], nextPrices: [Api.StarGiftUpgradePrice]) { + self.sampleAttributes = sampleAttributes + self.prices = prices + self.nextPrices = nextPrices + } + } + case starGiftUpgradePreview(Cons_starGiftUpgradePreview) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -411,7 +529,13 @@ public extension Api.payments { } public extension Api.payments { enum StarGiftWithdrawalUrl: TypeConstructorDescription { - case starGiftWithdrawalUrl(url: String) + public class Cons_starGiftWithdrawalUrl { + public var url: String + public init(url: String) { + self.url = url + } + } + case starGiftWithdrawalUrl(Cons_starGiftWithdrawalUrl) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -440,7 +564,19 @@ public extension Api.payments { } public extension Api.payments { enum StarGifts: TypeConstructorDescription { - case starGifts(hash: Int32, gifts: [Api.StarGift], chats: [Api.Chat], users: [Api.User]) + public class Cons_starGifts { + public var hash: Int32 + public var gifts: [Api.StarGift] + public var chats: [Api.Chat] + public var users: [Api.User] + public init(hash: Int32, gifts: [Api.StarGift], chats: [Api.Chat], users: [Api.User]) { + self.hash = hash + self.gifts = gifts + self.chats = chats + self.users = users + } + } + case starGifts(Cons_starGifts) case starGiftsNotModified public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { @@ -477,7 +613,13 @@ public extension Api.payments { } public extension Api.payments { enum StarsRevenueAdsAccountUrl: TypeConstructorDescription { - case starsRevenueAdsAccountUrl(url: String) + public class Cons_starsRevenueAdsAccountUrl { + public var url: String + public init(url: String) { + self.url = url + } + } + case starsRevenueAdsAccountUrl(Cons_starsRevenueAdsAccountUrl) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -506,7 +648,21 @@ public extension Api.payments { } public extension Api.payments { enum StarsRevenueStats: TypeConstructorDescription { - case starsRevenueStats(flags: Int32, topHoursGraph: Api.StatsGraph?, revenueGraph: Api.StatsGraph, status: Api.StarsRevenueStatus, usdRate: Double) + public class Cons_starsRevenueStats { + public var flags: Int32 + public var topHoursGraph: Api.StatsGraph? + public var revenueGraph: Api.StatsGraph + public var status: Api.StarsRevenueStatus + public var usdRate: Double + public init(flags: Int32, topHoursGraph: Api.StatsGraph?, revenueGraph: Api.StatsGraph, status: Api.StarsRevenueStatus, usdRate: Double) { + self.flags = flags + self.topHoursGraph = topHoursGraph + self.revenueGraph = revenueGraph + self.status = status + self.usdRate = usdRate + } + } + case starsRevenueStats(Cons_starsRevenueStats) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -535,7 +691,13 @@ public extension Api.payments { } public extension Api.payments { enum StarsRevenueWithdrawalUrl: TypeConstructorDescription { - case starsRevenueWithdrawalUrl(url: String) + public class Cons_starsRevenueWithdrawalUrl { + public var url: String + public init(url: String) { + self.url = url + } + } + case starsRevenueWithdrawalUrl(Cons_starsRevenueWithdrawalUrl) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -564,7 +726,29 @@ public extension Api.payments { } public extension Api.payments { enum StarsStatus: TypeConstructorDescription { - case starsStatus(flags: Int32, balance: Api.StarsAmount, subscriptions: [Api.StarsSubscription]?, subscriptionsNextOffset: String?, subscriptionsMissingBalance: Int64?, history: [Api.StarsTransaction]?, nextOffset: String?, chats: [Api.Chat], users: [Api.User]) + public class Cons_starsStatus { + public var flags: Int32 + public var balance: Api.StarsAmount + public var subscriptions: [Api.StarsSubscription]? + public var subscriptionsNextOffset: String? + public var subscriptionsMissingBalance: Int64? + public var history: [Api.StarsTransaction]? + public var nextOffset: String? + public var chats: [Api.Chat] + public var users: [Api.User] + public init(flags: Int32, balance: Api.StarsAmount, subscriptions: [Api.StarsSubscription]?, subscriptionsNextOffset: String?, subscriptionsMissingBalance: Int64?, history: [Api.StarsTransaction]?, nextOffset: String?, chats: [Api.Chat], users: [Api.User]) { + self.flags = flags + self.balance = balance + self.subscriptions = subscriptions + self.subscriptionsNextOffset = subscriptionsNextOffset + self.subscriptionsMissingBalance = subscriptionsMissingBalance + self.history = history + self.nextOffset = nextOffset + self.chats = chats + self.users = users + } + } + case starsStatus(Cons_starsStatus) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -593,7 +777,21 @@ public extension Api.payments { } public extension Api.payments { enum SuggestedStarRefBots: TypeConstructorDescription { - case suggestedStarRefBots(flags: Int32, count: Int32, suggestedBots: [Api.StarRefProgram], users: [Api.User], nextOffset: String?) + public class Cons_suggestedStarRefBots { + public var flags: Int32 + public var count: Int32 + public var suggestedBots: [Api.StarRefProgram] + public var users: [Api.User] + public var nextOffset: String? + public init(flags: Int32, count: Int32, suggestedBots: [Api.StarRefProgram], users: [Api.User], nextOffset: String?) { + self.flags = flags + self.count = count + self.suggestedBots = suggestedBots + self.users = users + self.nextOffset = nextOffset + } + } + case suggestedStarRefBots(Cons_suggestedStarRefBots) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -622,7 +820,17 @@ public extension Api.payments { } public extension Api.payments { enum UniqueStarGift: TypeConstructorDescription { - case uniqueStarGift(gift: Api.StarGift, chats: [Api.Chat], users: [Api.User]) + public class Cons_uniqueStarGift { + public var gift: Api.StarGift + public var chats: [Api.Chat] + public var users: [Api.User] + public init(gift: Api.StarGift, chats: [Api.Chat], users: [Api.User]) { + self.gift = gift + self.chats = chats + self.users = users + } + } + case uniqueStarGift(Cons_uniqueStarGift) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -651,7 +859,37 @@ public extension Api.payments { } public extension Api.payments { enum UniqueStarGiftValueInfo: TypeConstructorDescription { - case uniqueStarGiftValueInfo(flags: Int32, currency: String, value: Int64, initialSaleDate: Int32, initialSaleStars: Int64, initialSalePrice: Int64, lastSaleDate: Int32?, lastSalePrice: Int64?, floorPrice: Int64?, averagePrice: Int64?, listedCount: Int32?, fragmentListedCount: Int32?, fragmentListedUrl: String?) + public class Cons_uniqueStarGiftValueInfo { + public var flags: Int32 + public var currency: String + public var value: Int64 + public var initialSaleDate: Int32 + public var initialSaleStars: Int64 + public var initialSalePrice: Int64 + public var lastSaleDate: Int32? + public var lastSalePrice: Int64? + public var floorPrice: Int64? + public var averagePrice: Int64? + public var listedCount: Int32? + public var fragmentListedCount: Int32? + public var fragmentListedUrl: String? + public init(flags: Int32, currency: String, value: Int64, initialSaleDate: Int32, initialSaleStars: Int64, initialSalePrice: Int64, lastSaleDate: Int32?, lastSalePrice: Int64?, floorPrice: Int64?, averagePrice: Int64?, listedCount: Int32?, fragmentListedCount: Int32?, fragmentListedUrl: String?) { + self.flags = flags + self.currency = currency + self.value = value + self.initialSaleDate = initialSaleDate + self.initialSaleStars = initialSaleStars + self.initialSalePrice = initialSalePrice + self.lastSaleDate = lastSaleDate + self.lastSalePrice = lastSalePrice + self.floorPrice = floorPrice + self.averagePrice = averagePrice + self.listedCount = listedCount + self.fragmentListedCount = fragmentListedCount + self.fragmentListedUrl = fragmentListedUrl + } + } + case uniqueStarGiftValueInfo(Cons_uniqueStarGiftValueInfo) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG @@ -680,7 +918,17 @@ public extension Api.payments { } public extension Api.payments { enum ValidatedRequestedInfo: TypeConstructorDescription { - case validatedRequestedInfo(flags: Int32, id: String?, shippingOptions: [Api.ShippingOption]?) + public class Cons_validatedRequestedInfo { + public var flags: Int32 + public var id: String? + public var shippingOptions: [Api.ShippingOption]? + public init(flags: Int32, id: String?, shippingOptions: [Api.ShippingOption]?) { + self.flags = flags + self.id = id + self.shippingOptions = shippingOptions + } + } + case validatedRequestedInfo(Cons_validatedRequestedInfo) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { #if DEBUG diff --git a/submodules/TelegramCore/Sources/Statistics/StarsRevenueStatistics.swift b/submodules/TelegramCore/Sources/Statistics/StarsRevenueStatistics.swift index 37b90489b9..c1d5e7b76e 100644 --- a/submodules/TelegramCore/Sources/Statistics/StarsRevenueStatistics.swift +++ b/submodules/TelegramCore/Sources/Statistics/StarsRevenueStatistics.swift @@ -146,7 +146,8 @@ public extension StarsRevenueStats { extension StarsRevenueStats { init(apiStarsRevenueStats: Api.payments.StarsRevenueStats, peerId: PeerId) { switch apiStarsRevenueStats { - case let .starsRevenueStats(_, topHoursGraph, revenueGraph, balances, usdRate): + case let .starsRevenueStats(starsRevenueStatsData): + let (topHoursGraph, revenueGraph, balances, usdRate) = (starsRevenueStatsData.topHoursGraph, starsRevenueStatsData.revenueGraph, starsRevenueStatsData.status, starsRevenueStatsData.usdRate) self.init(topHoursGraph: topHoursGraph.flatMap { StatsGraph(apiStatsGraph: $0) }, revenueGraph: StatsGraph(apiStatsGraph: revenueGraph), balances: StarsRevenueStats.Balances(apiStarsRevenueStatus: balances), usdRate: usdRate) } } @@ -452,7 +453,8 @@ func _internal_requestStarsRevenueWithdrawalUrl(account: Account, ton: Bool, pee } |> map { result -> String in switch result { - case let .starsRevenueWithdrawalUrl(url): + case let .starsRevenueWithdrawalUrl(starsRevenueWithdrawalUrlData): + let url = starsRevenueWithdrawalUrlData.url return url } } @@ -477,7 +479,8 @@ func _internal_requestStarsRevenueAdsAccountlUrl(account: Account, peerId: Engin return nil } switch result { - case let .starsRevenueAdsAccountUrl(url): + case let .starsRevenueAdsAccountUrl(starsRevenueAdsAccountUrlData): + let url = starsRevenueAdsAccountUrlData.url return url } } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/BotWebView.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/BotWebView.swift index 3939eaa817..8b37f8e937 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/BotWebView.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/BotWebView.swift @@ -1240,7 +1240,8 @@ fileprivate func _internal_requestSuggestedStarRefBots(account: Account, id: Eng } return account.postbox.transaction { transaction -> (items: [EngineSuggestedStarRefBotsContext.Item], totalCount: Int, nextOffset: String?)? in switch result { - case let .suggestedStarRefBots(_, count, suggestedBots, users, nextOffset): + case let .suggestedStarRefBots(suggestedStarRefBotsData): + let (count, suggestedBots, users, nextOffset) = (suggestedStarRefBotsData.count, suggestedStarRefBotsData.suggestedBots, suggestedStarRefBotsData.users, suggestedStarRefBotsData.nextOffset) updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: AccumulatedPeers(users: users)) var items: [EngineSuggestedStarRefBotsContext.Item] = [] diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift b/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift index 629a0e3e8d..13c2481202 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Payments/BotPaymentForm.swift @@ -688,7 +688,8 @@ func _internal_validateBotPaymentForm(account: Account, saveInfo: Bool, source: } |> map { result -> BotPaymentValidatedFormInfo in switch result { - case let .validatedRequestedInfo(_, id, shippingOptions): + case let .validatedRequestedInfo(validatedRequestedInfoData): + let (id, shippingOptions) = (validatedRequestedInfoData.id, validatedRequestedInfoData.shippingOptions) return BotPaymentValidatedFormInfo(id: id, shippingOptions: shippingOptions.flatMap { return $0.map(BotPaymentShippingOption.init) }) @@ -756,7 +757,8 @@ func _internal_sendBotPaymentForm(account: Account, formId: Int64, source: BotPa return account.network.request(Api.functions.payments.sendPaymentForm(flags: flags, formId: formId, invoice: invoice, requestedInfoId: validatedInfoId, shippingOptionId: shippingOptionId, credentials: apiCredentials, tipAmount: tipAmount)) |> map { result -> SendBotPaymentResult in switch result { - case let .paymentResult(updates): + case let .paymentResult(paymentResultData): + let updates = paymentResultData.updates account.stateManager.addUpdates(updates) var receiptMessageId: MessageId? @@ -815,7 +817,8 @@ func _internal_sendBotPaymentForm(account: Account, formId: Int64, source: BotPa } } return .done(receiptMessageId: receiptMessageId, subscriptionPeerId: nil, uniqueStarGift: nil) - case let .paymentVerificationNeeded(url): + case let .paymentVerificationNeeded(paymentVerificationNeededData): + let url = paymentVerificationNeededData.url return .externalVerificationRequired(url: url) } } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift index c4643432d5..cdc7d015c6 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift @@ -1340,10 +1340,11 @@ func _internal_keepCachedStarGiftsUpdated(postbox: Postbox, network: Network, ac return postbox.transaction { transaction in switch result { - case let .starGifts(hash, gifts, chats, users): + case let .starGifts(starGiftsData): + let (hash, gifts, chats, users) = (starGiftsData.hash, starGiftsData.gifts, starGiftsData.chats, starGiftsData.users) let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: parsedPeers) - + let starGiftsLists = StarGiftsList(items: gifts.compactMap { StarGift(apiStarGift: $0) }, hashValue: hash) transaction.setPreferencesEntry(key: PreferencesKeys.starGifts(), value: PreferencesEntry(starGiftsLists)) case .starGiftsNotModified: @@ -1723,7 +1724,8 @@ func _internal_starGiftUpgradePreview(account: Account, giftId: Int64) -> Signal return nil } switch result { - case let .starGiftUpgradePreview(apiSampleAttributes, apiPrices, apiNextPrices): + case let .starGiftUpgradePreview(starGiftUpgradePreviewData): + let (apiSampleAttributes, apiPrices, apiNextPrices) = (starGiftUpgradePreviewData.sampleAttributes, starGiftUpgradePreviewData.prices, starGiftUpgradePreviewData.nextPrices) let attributes = apiSampleAttributes.compactMap { StarGift.UniqueGift.Attribute(apiAttribute: $0) } var prices: [StarGiftUpgradePreview.Price] = [] var nextPrices: [StarGiftUpgradePreview.Price] = [] @@ -2015,7 +2017,8 @@ private final class ProfileGiftsContextImpl { } return postbox.transaction { transaction -> ([ProfileGiftsContext.State.StarGift], Int32, String?, Bool?) in switch result { - case let .savedStarGifts(_, count, apiNotificationsEnabled, apiGifts, nextOffset, chats, users): + case let .savedStarGifts(savedStarGiftsData): + let (_, count, apiNotificationsEnabled, apiGifts, nextOffset, chats, users) = (savedStarGiftsData.flags, savedStarGiftsData.count, savedStarGiftsData.chatNotificationsEnabled, savedStarGiftsData.gifts, savedStarGiftsData.nextOffset, savedStarGiftsData.chats, savedStarGiftsData.users) let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: parsedPeers) @@ -3232,7 +3235,8 @@ private final class CraftGiftsContextImpl { } return postbox.transaction { transaction -> ([ProfileGiftsContext.State.StarGift], Int32, String?) in switch result { - case let .savedStarGifts(_, count, _, apiGifts, nextOffset, chats, users): + case let .savedStarGifts(savedStarGiftsData): + let (_, count, _, apiGifts, nextOffset, chats, users) = (savedStarGiftsData.flags, savedStarGiftsData.count, savedStarGiftsData.chatNotificationsEnabled, savedStarGiftsData.gifts, savedStarGiftsData.nextOffset, savedStarGiftsData.chats, savedStarGiftsData.users) let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: parsedPeers) @@ -3553,7 +3557,8 @@ func _internal_getUniqueStarGift(account: Account, slug: String) -> Signal mapToSignal { result -> Signal in if let result = result { switch result { - case let .uniqueStarGift(gift, chats, users): + case let .uniqueStarGift(uniqueStarGiftData): + let (gift, chats, users) = (uniqueStarGiftData.gift, uniqueStarGiftData.chats, uniqueStarGiftData.users) return account.postbox.transaction { transaction in let parsedPeers = AccumulatedPeers(chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: parsedPeers) @@ -3578,7 +3583,8 @@ func _internal_getUniqueStarGiftValueInfo(account: Account, slug: String) -> Sig |> map { result -> StarGift.UniqueGift.ValueInfo? in if let result { switch result { - case let .uniqueStarGiftValueInfo(flags, currency, value, initialSaleDate, initialSaleStars, initialSalePrice, lastSaleDate, lastSalePrice, floorPrice, averagePrice, listedCount, fragmentListedCount, fragmentListedUrl): + case let .uniqueStarGiftValueInfo(uniqueStarGiftValueInfoData): + let (flags, currency, value, initialSaleDate, initialSaleStars, initialSalePrice, lastSaleDate, lastSalePrice, floorPrice, averagePrice, listedCount, fragmentListedCount, fragmentListedUrl) = (uniqueStarGiftValueInfoData.flags, uniqueStarGiftValueInfoData.currency, uniqueStarGiftValueInfoData.value, uniqueStarGiftValueInfoData.initialSaleDate, uniqueStarGiftValueInfoData.initialSaleStars, uniqueStarGiftValueInfoData.initialSalePrice, uniqueStarGiftValueInfoData.lastSaleDate, uniqueStarGiftValueInfoData.lastSalePrice, uniqueStarGiftValueInfoData.floorPrice, uniqueStarGiftValueInfoData.averagePrice, uniqueStarGiftValueInfoData.listedCount, uniqueStarGiftValueInfoData.fragmentListedCount, uniqueStarGiftValueInfoData.fragmentListedUrl) return StarGift.UniqueGift.ValueInfo( isLastSaleOnFragment: flags & (1 << 1) != 0, valueIsAverage: flags & (1 << 6) != 0, @@ -3769,7 +3775,8 @@ func _internal_requestStarGiftWithdrawalUrl(account: Account, reference: StarGif } |> map { result -> String in switch result { - case let .starGiftWithdrawalUrl(url): + case let .starGiftWithdrawalUrl(starGiftWithdrawalUrlData): + let url = starGiftWithdrawalUrlData.url return url } } @@ -3941,7 +3948,8 @@ private final class ResaleGiftsContextImpl { } return postbox.transaction { transaction -> ([StarGift], [StarGift.UniqueGift.Attribute]?, [ResaleGiftsContext.Attribute: Int32]?, Int64?, Int32, String?) in switch result { - case let .resaleStarGifts(_, count, gifts, nextOffset, attributes, attributesHash, chats, counters, users): + case let .resaleStarGifts(resaleStarGiftsData): + let (_, count, gifts, nextOffset, attributes, attributesHash, chats, counters, users) = (resaleStarGiftsData.flags, resaleStarGiftsData.count, resaleStarGiftsData.gifts, resaleStarGiftsData.nextOffset, resaleStarGiftsData.attributes, resaleStarGiftsData.attributesHash, resaleStarGiftsData.chats, resaleStarGiftsData.counters, resaleStarGiftsData.users) let _ = attributesHash var resultAttributes: [StarGift.UniqueGift.Attribute]? @@ -4285,7 +4293,8 @@ func _internal_getStarGiftUpgradeAttributes(account: Account, giftId: Int64) -> return .single(nil) } switch result { - case let .starGiftUpgradeAttributes(apiAttributes): + case let .starGiftUpgradeAttributes(starGiftUpgradeAttributesData): + let apiAttributes = starGiftUpgradeAttributesData.attributes let attributes = apiAttributes.compactMap { StarGift.UniqueGift.Attribute(apiAttribute: $0) } return account.postbox.transaction { transaction in if !attributes.isEmpty { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsAuctions.swift b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsAuctions.swift index 253e6a1f3a..de7b020b73 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsAuctions.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsAuctions.swift @@ -30,7 +30,8 @@ private func _internal_getStarGiftAuctionState(postbox: Postbox, network: Networ } return postbox.transaction { transaction -> (gift: StarGift, state: GiftAuctionContext.State.AuctionState?, myState: GiftAuctionContext.State.MyState, timeout: Int32)? in switch result { - case let .starGiftAuctionState(apiGift, state, userState, timeout, users, chats): + case let .starGiftAuctionState(starGiftAuctionStateData): + let (apiGift, state, userState, timeout, users, chats) = (starGiftAuctionStateData.gift, starGiftAuctionStateData.state, starGiftAuctionStateData.userState, starGiftAuctionStateData.timeout, starGiftAuctionStateData.users, starGiftAuctionStateData.chats) updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: AccumulatedPeers(chats: chats, users: users)) guard let gift = StarGift(apiStarGift: apiGift) else { return nil @@ -392,7 +393,8 @@ func _internal_getGiftAuctionAcquiredGifts(account: Account, giftId: Int64) -> S } return account.postbox.transaction { transaction -> [GiftAuctionAcquiredGift] in switch result { - case let .starGiftAuctionAcquiredGifts(gifts, users, chats): + case let .starGiftAuctionAcquiredGifts(starGiftAuctionAcquiredGiftsData): + let (gifts, users, chats) = (starGiftAuctionAcquiredGiftsData.gifts, starGiftAuctionAcquiredGiftsData.users, starGiftAuctionAcquiredGiftsData.chats) let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: parsedPeers) @@ -438,7 +440,8 @@ func _internal_getActiveGiftAuctions(account: Account, hash: Int64) -> Signal<[G |> mapToSignal { result in return account.postbox.transaction { transaction -> [GiftAuctionContext]? in switch result { - case let .starGiftActiveAuctions(auctions, users, chats): + case let .starGiftActiveAuctions(starGiftActiveAuctionsData): + let (auctions, users, chats) = (starGiftActiveAuctionsData.auctions, starGiftActiveAuctionsData.users, starGiftActiveAuctionsData.chats) let parsedPeers = AccumulatedPeers(chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: parsedPeers) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsCollections.swift b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsCollections.swift index 9be447bc0a..dc85825576 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsCollections.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGiftsCollections.swift @@ -127,8 +127,9 @@ private func _internal_getStarGiftCollections(postbox: Postbox, network: Network } return postbox.transaction { transaction -> [StarGiftCollection]? in switch result { - case let .starGiftCollections(collections): - let collections = collections.compactMap { StarGiftCollection(apiStarGiftCollection: $0) } + case let .starGiftCollections(starGiftCollectionsData): + let apiCollections = starGiftCollectionsData.collections + let collections = apiCollections.compactMap { StarGiftCollection(apiStarGiftCollection: $0) } return collections case .starGiftCollectionsNotModified: return cachedCollections ?? [] diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Payments/Stars.swift b/submodules/TelegramCore/Sources/TelegramEngine/Payments/Stars.swift index ef51083ac0..3e426b9c08 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Payments/Stars.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Payments/Stars.swift @@ -470,7 +470,8 @@ private func _internal_requestStarsState(account: Account, peerId: EnginePeer.Id |> mapToSignal { result -> Signal in return account.postbox.transaction { transaction -> InternalStarsStatus in switch result { - case let .starsStatus(_, balance, _, _, subscriptionsMissingBalance, transactions, nextTransactionsOffset, chats, users): + case let .starsStatus(starsStatusData): + let (_, balance, _, _, subscriptionsMissingBalance, transactions, nextTransactionsOffset, chats, users) = (starsStatusData.flags, starsStatusData.balance, starsStatusData.subscriptions, starsStatusData.subscriptionsNextOffset, starsStatusData.subscriptionsMissingBalance, starsStatusData.history, starsStatusData.nextOffset, starsStatusData.chats, starsStatusData.users) let peers = AccumulatedPeers(chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: peers) @@ -523,10 +524,11 @@ private func _internal_requestStarsSubscriptions(account: Account, peerId: Engin } return account.postbox.transaction { transaction -> InternalStarsStatus in switch result { - case let .starsStatus(_, balance, subscriptions, subscriptionsNextOffset, subscriptionsMissingBalance, _, _, chats, users): + case let .starsStatus(starsStatusData): + let (_, balance, subscriptions, subscriptionsNextOffset, subscriptionsMissingBalance, _, _, chats, users) = (starsStatusData.flags, starsStatusData.balance, starsStatusData.subscriptions, starsStatusData.subscriptionsNextOffset, starsStatusData.subscriptionsMissingBalance, starsStatusData.history, starsStatusData.nextOffset, starsStatusData.chats, starsStatusData.users) let peers = AccumulatedPeers(chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: peers) - + var parsedSubscriptions: [StarsContext.State.Subscription] = [] if let subscriptions { for entry in subscriptions { @@ -1602,7 +1604,8 @@ func _internal_sendStarsPaymentForm(account: Account, formId: Int64, source: Bot return account.network.request(Api.functions.payments.sendStarsForm(formId: formId, invoice: invoice)) |> map { result -> SendBotPaymentResult in switch result { - case let .paymentResult(updates): + case let .paymentResult(paymentResultData): + let updates = paymentResultData.updates account.stateManager.addUpdates(updates) switch source { @@ -1694,7 +1697,8 @@ func _internal_sendStarsPaymentForm(account: Account, formId: Int64, source: Bot } } return .done(receiptMessageId: receiptMessageId, subscriptionPeerId: nil, uniqueStarGift: resultGift) - case let .paymentVerificationNeeded(url): + case let .paymentVerificationNeeded(paymentVerificationNeededData): + let url = paymentVerificationNeededData.url return .externalVerificationRequired(url: url) } } @@ -1768,9 +1772,11 @@ func _internal_getStarsTransaction(accountPeerId: PeerId, postbox: Postbox, netw } |> mapToSignal { result -> Signal in return postbox.transaction { transaction -> StarsContext.State.Transaction? in - guard let result, case let .starsStatus(_, _, _, _, _, transactions, _, chats, users) = result, let matchingTransaction = transactions?.first else { + guard let result, case let .starsStatus(starsStatusData) = result, let matchingTransaction = starsStatusData.history?.first else { return nil } + let (_, _, _, _, _, transactions, _, chats, users) = (starsStatusData.flags, starsStatusData.balance, starsStatusData.subscriptions, starsStatusData.subscriptionsNextOffset, starsStatusData.subscriptionsMissingBalance, starsStatusData.history, starsStatusData.nextOffset, starsStatusData.chats, starsStatusData.users) + let _ = transactions let peers = AccumulatedPeers(chats: chats, users: users) updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: peers)