mirror of
https://github.com/kean/Pulse.git
synced 2026-05-30 21:07:33 +00:00
46 lines
1.3 KiB
Swift
46 lines
1.3 KiB
Swift
// The MIT License (MIT)
|
|
//
|
|
// Copyright (c) 2020-2024 Alexander Grebenyuk (github.com/kean).
|
|
|
|
import Pulse
|
|
|
|
struct FileViewerViewModelContext {
|
|
var contentType: NetworkLogger.ContentType?
|
|
var originalSize: Int64
|
|
var metadata: [String: String]?
|
|
var isResponse = true
|
|
var error: NetworkLogger.DecodingError?
|
|
}
|
|
|
|
extension NetworkTaskEntity {
|
|
var requestFileViewerContext: FileViewerViewModelContext {
|
|
FileViewerViewModelContext(
|
|
contentType: originalRequest?.contentType,
|
|
originalSize: requestBodySize,
|
|
metadata: metadata,
|
|
isResponse: false,
|
|
error: nil
|
|
)
|
|
}
|
|
|
|
var responseFileViewerContext: FileViewerViewModelContext {
|
|
FileViewerViewModelContext(
|
|
contentType: response?.contentType,
|
|
originalSize: responseBodySize,
|
|
metadata: metadata,
|
|
isResponse: true,
|
|
error: decodingError
|
|
)
|
|
}
|
|
|
|
/// - returns `nil` if the task is an unknown state. It may happen if the
|
|
/// task is pending, but it's from the previous app run.
|
|
func state(in store: LoggerStore) -> NetworkTaskEntity.State? {
|
|
let state = self.state
|
|
if state == .pending && self.session != store.session.id {
|
|
return nil
|
|
}
|
|
return state
|
|
}
|
|
}
|