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.
Bu işleme şunda yer alıyor:
Shadowfacts 2020-01-04 23:13:55 -05:00
ebeveyn ad09e36907
işleme 787dc9f24f
İmzalayan: shadowfacts
GPG Anahtar Kimliği: 94A5AB95422746E5
1 değiştirilmiş dosya ile 13 ekleme ve 0 silme

Dosyayı Görüntüle

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