Refactor constructor use sites for types 520-539 to struct pattern

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Isaac 2026-01-19 00:14:18 +08:00
parent 6746305b4b
commit 64d8fe6ba0
8 changed files with 323 additions and 49 deletions

View file

@ -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

View file

@ -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
}
}

View file

@ -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] = []

View file

@ -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)
}
}

View file

@ -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<StarG
|> mapToSignal { result -> Signal<StarGift.UniqueGift?, NoError> 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 {

View file

@ -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)

View file

@ -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 ?? []

View file

@ -470,7 +470,8 @@ private func _internal_requestStarsState(account: Account, peerId: EnginePeer.Id
|> mapToSignal { result -> Signal<InternalStarsStatus, RequestStarsStateError> 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<StarsContext.State.Transaction?, NoError> 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)