Group boosts

This commit is contained in:
Ilya Laktyushin
2024-02-06 16:18:26 +04:00
parent b4b90b090c
commit b909d1bea0
16 changed files with 767 additions and 61 deletions

View File

@@ -129,7 +129,26 @@ func _internal_applyChannelBoost(account: Account, peerId: PeerId, slots: [Int32
|> mapToSignal { result -> Signal<MyBoostStatus?, NoError> in
if let result = result {
return account.postbox.transaction { transaction -> MyBoostStatus? in
return MyBoostStatus(apiMyBoostStatus: result, accountPeerId: account.peerId, transaction: transaction)
let myBoostStatus = MyBoostStatus(apiMyBoostStatus: result, accountPeerId: account.peerId, transaction: transaction)
var appliedBoosts: Int32 = 0
for boost in myBoostStatus.boosts {
if boost.peer?.id == peerId {
appliedBoosts += 1
}
}
transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, current in
var cachedData: CachedChannelData
if let current = current as? CachedChannelData {
cachedData = current
} else {
cachedData = CachedChannelData()
}
return cachedData.withUpdatedAppliedBoosts(appliedBoosts)
})
return myBoostStatus
}
} else {
return .single(nil)