Skip to content

Commit 684a735

Browse files
authored
Merge pull request #24 from lauramarson/webServices
Web services
2 parents b6de842 + afd7ff2 commit 684a735

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

AnimalsApp/AnimalsApp/Models/Animals.swift

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ struct Animal: Codable {
3232
case image
3333
case createdAt = "created_at"
3434
case updatedAt = "updated_at"
35-
}
35+
}
3636
}
3737

3838
extension Animal {
@@ -44,3 +44,25 @@ extension Animal {
4444
return imageURL
4545
}
4646
}
47+
48+
extension Animal {
49+
init(from decoder: Decoder) throws {
50+
let values = try decoder.container(keyedBy: CodingKeys.self)
51+
52+
if let resultInt = try? values.decodeIfPresent(Int.self, forKey: .age) {
53+
age = resultInt
54+
} else {
55+
if let resultString = try? values.decodeIfPresent(String.self, forKey: .age) {
56+
age = Int(resultString) ?? 0
57+
}
58+
}
59+
60+
id = try values.decode(String.self, forKey: .id)
61+
name = try values.decodeIfPresent(String.self, forKey: .name)
62+
description = try values.decodeIfPresent(String.self, forKey: .description)
63+
species = try values.decodeIfPresent(String.self, forKey: .species)
64+
image = try values.decodeIfPresent(String.self, forKey: .image)
65+
createdAt = try values.decode(String.self, forKey: .createdAt)
66+
updatedAt = try values.decode(String.self, forKey: .updatedAt)
67+
}
68+
}

0 commit comments

Comments
 (0)