File tree Expand file tree Collapse file tree
AnimalsApp/AnimalsApp/Models Expand file tree Collapse file tree Original file line number Diff line number Diff 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
3838extension 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+ }
You can’t perform that action at this time.
0 commit comments