diff --git a/Source/Turbo/Visit/VisitResponse.swift b/Source/Turbo/Visit/VisitResponse.swift index e38fdd9..e7ddfcb 100644 --- a/Source/Turbo/Visit/VisitResponse.swift +++ b/Source/Turbo/Visit/VisitResponse.swift @@ -3,10 +3,23 @@ import Foundation public struct VisitResponse: Codable { public let statusCode: Int public let responseHTML: String? + public let redirected: Bool - public init(statusCode: Int, responseHTML: String? = nil) { + public init(statusCode: Int, responseHTML: String? = nil, redirected: Bool = false) { self.statusCode = statusCode self.responseHTML = responseHTML + self.redirected = redirected + } + + public init(from decoder: any Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + self.statusCode = try container.decode(Int.self, forKey: .statusCode) + self.responseHTML = try container.decodeIfPresent(String.self, forKey: .responseHTML) + if let redirected = try? container.decode(Bool.self, forKey: .redirected) { + self.redirected = redirected + } else { + redirected = false + } } public var isSuccessful: Bool {