Files
Pulse/Sources/PulseUI/Helpers/FileViewModelContext.swift
T
2024-08-04 11:07:42 -04:00

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