mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix revenue transactions loading
This commit is contained in:
parent
364045f8cd
commit
cd563d556b
@ -220,34 +220,21 @@ private final class RevenueStatsTransactionsContextImpl {
|
|||||||
let peerId = self.peerId
|
let peerId = self.peerId
|
||||||
let lastOffset = self.lastOffset
|
let lastOffset = self.lastOffset
|
||||||
|
|
||||||
self.disposable.set((self.account.postbox.transaction { transaction -> (Peer, Int32?)? in
|
self.disposable.set((self.account.postbox.transaction { transaction -> Peer? in
|
||||||
let statsDatacenterId = (transaction.getPeerCachedData(peerId: peerId) as? CachedChannelData)?.statsDatacenterId
|
|
||||||
guard let peer = transaction.getPeer(peerId) else {
|
guard let peer = transaction.getPeer(peerId) else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return (peer, statsDatacenterId)
|
return peer
|
||||||
}
|
}
|
||||||
|> mapToSignal { data -> Signal<([RevenueStatsTransactionsContext.State.Transaction], Int32, Int32?), NoError> in
|
|> mapToSignal { peer -> Signal<([RevenueStatsTransactionsContext.State.Transaction], Int32, Int32?), NoError> in
|
||||||
if let (peer, statsDatacenterId) = data {
|
if let peer {
|
||||||
guard let inputChannel = apiInputChannel(peer) else {
|
guard let inputChannel = apiInputChannel(peer) else {
|
||||||
return .complete()
|
return .complete()
|
||||||
}
|
}
|
||||||
let offset = lastOffset ?? 0
|
let offset = lastOffset ?? 0
|
||||||
let limit: Int32 = lastOffset == nil ? 25 : 50
|
let limit: Int32 = lastOffset == nil ? 25 : 50
|
||||||
|
|
||||||
let request = Api.functions.stats.getBroadcastRevenueTransactions(channel: inputChannel, offset: offset, limit: limit)
|
return account.network.request(Api.functions.stats.getBroadcastRevenueTransactions(channel: inputChannel, offset: offset, limit: limit), automaticFloodWait: false)
|
||||||
let signal: Signal<Api.stats.BroadcastRevenueTransactions, MTRpcError>
|
|
||||||
if let statsDatacenterId = statsDatacenterId, account.network.datacenterId != statsDatacenterId {
|
|
||||||
signal = account.network.download(datacenterId: Int(statsDatacenterId), isMedia: false, tag: nil)
|
|
||||||
|> castError(MTRpcError.self)
|
|
||||||
|> mapToSignal { worker in
|
|
||||||
return worker.request(request)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
signal = account.network.request(request, automaticFloodWait: false)
|
|
||||||
}
|
|
||||||
|
|
||||||
return signal
|
|
||||||
|> map(Optional.init)
|
|> map(Optional.init)
|
||||||
|> `catch` { _ -> Signal<Api.stats.BroadcastRevenueTransactions?, NoError> in
|
|> `catch` { _ -> Signal<Api.stats.BroadcastRevenueTransactions?, NoError> in
|
||||||
return .single(nil)
|
return .single(nil)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user