Fix crash decoding statuses sent from certain applications
If an application provides its URL as an empty string, decoding it would cause throw an error because Foundation's URL class does not accept empty strings. Instead, during parsing, consume the invalid URL and replace it with a `nil` app URL.
这个提交包含在:
父节点
ad09e36907
当前提交
787dc9f24f
|
@ -12,6 +12,19 @@ public class Application: Decodable {
|
|||
public let name: String
|
||||
public let website: URL?
|
||||
|
||||
public required init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
|
||||
self.name = try container.decode(String.self, forKey: .name)
|
||||
|
||||
if let websiteStr = try container.decodeIfPresent(String.self, forKey: .website),
|
||||
let url = URL(string: websiteStr) {
|
||||
self.website = url
|
||||
} else {
|
||||
self.website = nil
|
||||
}
|
||||
}
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case name
|
||||
case website
|
||||
|
|
正在加载...
在新工单中引用