Test case
1 generated file · +9 −1test/inputs/json/misc/016af.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/033b1.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/0a358.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -77,10 +77,10 @@ class Result { | ||
| 77 | 77 | |
| 78 | 78 | factory Result.fromJson(Map<String, dynamic> json) => Result( |
| 79 | 79 | code: json["code"], |
| 80 | - createdAt: DateTime.parse(json["created_at"]), | |
| 80 | + createdAt: _parseDateTime(json["created_at"]), | |
| 81 | 81 | id: json["id"], |
| 82 | 82 | name: json["name"], |
| 83 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 83 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 84 | 84 | uri: json["uri"], |
| 85 | 85 | ); |
| 86 | 86 | |
| @@ -93,3 +93,11 @@ class Result { | ||
| 93 | 93 | "uri": uri, |
| 94 | 94 | }; |
| 95 | 95 | } |
| 96 | + | |
| 97 | +DateTime _parseDateTime(String value) { | |
| 98 | + final date = value.substring(0, 10); | |
| 99 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 100 | + throw FormatException('Invalid date-time', value); | |
| 101 | + } | |
| 102 | + return DateTime.parse(value.toUpperCase()); | |
| 103 | +} |
Test case
1 generated file · +16 −8test/inputs/json/misc/0a91a.json
Mdartdefault / TopLevel.dart+16 −8
| @@ -31,7 +31,7 @@ class TopLevel { | ||
| 31 | 31 | |
| 32 | 32 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 33 | 33 | actor: Actor.fromJson(json["actor"]), |
| 34 | - createdAt: DateTime.parse(json["created_at"]), | |
| 34 | + createdAt: _parseDateTime(json["created_at"]), | |
| 35 | 35 | id: json["id"], |
| 36 | 36 | org: json["org"] == null ? null : Actor.fromJson(json["org"]), |
| 37 | 37 | payload: Payload.fromJson(json["payload"]), |
| @@ -302,12 +302,12 @@ class PullRequest { | ||
| 302 | 302 | base: Base.fromJson(json["base"]), |
| 303 | 303 | body: json["body"], |
| 304 | 304 | changedFiles: json["changed_files"], |
| 305 | - closedAt: DateTime.parse(json["closed_at"]), | |
| 305 | + closedAt: _parseDateTime(json["closed_at"]), | |
| 306 | 306 | comments: json["comments"], |
| 307 | 307 | commentsUrl: json["comments_url"], |
| 308 | 308 | commits: json["commits"], |
| 309 | 309 | commitsUrl: json["commits_url"], |
| 310 | - createdAt: DateTime.parse(json["created_at"]), | |
| 310 | + createdAt: _parseDateTime(json["created_at"]), | |
| 311 | 311 | deletions: json["deletions"], |
| 312 | 312 | diffUrl: json["diff_url"], |
| 313 | 313 | head: Base.fromJson(json["head"]), |
| @@ -321,7 +321,7 @@ class PullRequest { | ||
| 321 | 321 | mergeable: (json.containsKey("mergeable") ? json["mergeable"] : throw FormatException('Missing required property')), |
| 322 | 322 | mergeableState: json["mergeable_state"], |
| 323 | 323 | merged: json["merged"], |
| 324 | - mergedAt: DateTime.parse(json["merged_at"]), | |
| 324 | + mergedAt: _parseDateTime(json["merged_at"]), | |
| 325 | 325 | mergedBy: MergedBy.fromJson(json["merged_by"]), |
| 326 | 326 | milestone: (json.containsKey("milestone") ? json["milestone"] : throw FormatException('Missing required property')), |
| 327 | 327 | number: json["number"], |
| @@ -334,7 +334,7 @@ class PullRequest { | ||
| 334 | 334 | state: json["state"], |
| 335 | 335 | statusesUrl: json["statuses_url"], |
| 336 | 336 | title: json["title"], |
| 337 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 337 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 338 | 338 | url: json["url"], |
| 339 | 339 | user: MergedBy.fromJson(json["user"]), |
| 340 | 340 | ); |
| @@ -571,7 +571,7 @@ class BaseRepo { | ||
| 571 | 571 | compareUrl: json["compare_url"], |
| 572 | 572 | contentsUrl: json["contents_url"], |
| 573 | 573 | contributorsUrl: json["contributors_url"], |
| 574 | - createdAt: DateTime.parse(json["created_at"]), | |
| 574 | + createdAt: _parseDateTime(json["created_at"]), | |
| 575 | 575 | defaultBranch: json["default_branch"], |
| 576 | 576 | deploymentsUrl: json["deployments_url"], |
| 577 | 577 | description: (json.containsKey("description") ? json["description"] : throw FormatException('Missing required property')), |
| @@ -612,7 +612,7 @@ class BaseRepo { | ||
| 612 | 612 | owner: MergedBy.fromJson(json["owner"]), |
| 613 | 613 | private: json["private"], |
| 614 | 614 | pullsUrl: json["pulls_url"], |
| 615 | - pushedAt: DateTime.parse(json["pushed_at"]), | |
| 615 | + pushedAt: _parseDateTime(json["pushed_at"]), | |
| 616 | 616 | releasesUrl: json["releases_url"], |
| 617 | 617 | size: json["size"], |
| 618 | 618 | sshUrl: json["ssh_url"], |
| @@ -625,7 +625,7 @@ class BaseRepo { | ||
| 625 | 625 | tagsUrl: json["tags_url"], |
| 626 | 626 | teamsUrl: json["teams_url"], |
| 627 | 627 | treesUrl: json["trees_url"], |
| 628 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 628 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 629 | 629 | url: json["url"], |
| 630 | 630 | watchers: json["watchers"], |
| 631 | 631 | watchersCount: json["watchers_count"], |
| @@ -895,3 +895,11 @@ class EnumValues<T> { | ||
| 895 | 895 | return reverseMap; |
| 896 | 896 | } |
| 897 | 897 | } |
| 898 | + | |
| 899 | +DateTime _parseDateTime(String value) { | |
| 900 | + final date = value.substring(0, 10); | |
| 901 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 902 | + throw FormatException('Invalid date-time', value); | |
| 903 | + } | |
| 904 | + return DateTime.parse(value.toUpperCase()); | |
| 905 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/0e0c2.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -80,7 +80,7 @@ class Result { | ||
| 80 | 80 | id: json["id"], |
| 81 | 81 | images: List<Image>.from(json["images"].map((x) => Image.fromJson(x))), |
| 82 | 82 | language: resultLanguageValues.map[json["language"]]!, |
| 83 | - releaseDate: DateTime.parse(json["release_date"]), | |
| 83 | + releaseDate: _parseDateTime(json["release_date"]), | |
| 84 | 84 | stars: json["stars"], |
| 85 | 85 | tags: (json.containsKey("tags") ? json["tags"] : throw FormatException('Missing required property')) == null ? null : List<dynamic>.from((json.containsKey("tags") ? json["tags"] : throw FormatException('Missing required property'))!.map((x) => x)), |
| 86 | 86 | title: json["title"], |
| @@ -325,3 +325,11 @@ class EnumValues<T> { | ||
| 325 | 325 | return reverseMap; |
| 326 | 326 | } |
| 327 | 327 | } |
| 328 | + | |
| 329 | +DateTime _parseDateTime(String value) { | |
| 330 | + final date = value.substring(0, 10); | |
| 331 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 332 | + throw FormatException('Invalid date-time', value); | |
| 333 | + } | |
| 334 | + return DateTime.parse(value.toUpperCase()); | |
| 335 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/167d6.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/16bc5.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -415,3 +415,11 @@ class Wind { | ||
| 415 | 415 | "speed": speed, |
| 416 | 416 | }; |
| 417 | 417 | } |
| 418 | + | |
| 419 | +DateTime _parseDateTime(String value) { | |
| 420 | + final date = value.substring(0, 10); | |
| 421 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 422 | + throw FormatException('Invalid date-time', value); | |
| 423 | + } | |
| 424 | + return DateTime.parse(value.toUpperCase()); | |
| 425 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/1b28c.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +11 −3test/inputs/json/misc/1b409.json
Mdartdefault / TopLevel.dart+11 −3
| @@ -105,7 +105,7 @@ class Object { | ||
| 105 | 105 | current: json["current"], |
| 106 | 106 | description: json["description"], |
| 107 | 107 | district: json["district"], |
| 108 | - enddate: DateTime.parse(json["enddate"]), | |
| 108 | + enddate: _parseDateTime(json["enddate"]), | |
| 109 | 109 | extra: Extra.fromJson(json["extra"]), |
| 110 | 110 | id: json["id"], |
| 111 | 111 | leadershipTitle: (json.containsKey("leadership_title") ? json["leadership_title"] : throw FormatException('Missing required property')), |
| @@ -116,7 +116,7 @@ class Object { | ||
| 116 | 116 | roleTypeLabel: roleTypeLabelValues.map[json["role_type_label"]]!, |
| 117 | 117 | senatorClass: (json.containsKey("senator_class") ? json["senator_class"] : throw FormatException('Missing required property')), |
| 118 | 118 | senatorRank: (json.containsKey("senator_rank") ? json["senator_rank"] : throw FormatException('Missing required property')), |
| 119 | - startdate: DateTime.parse(json["startdate"]), | |
| 119 | + startdate: _parseDateTime(json["startdate"]), | |
| 120 | 120 | state: json["state"], |
| 121 | 121 | title: titleValues.map[json["title"]]!, |
| 122 | 122 | titleLong: roleTypeLabelValues.map[json["title_long"]]!, |
| @@ -233,7 +233,7 @@ class Person { | ||
| 233 | 233 | |
| 234 | 234 | factory Person.fromJson(Map<String, dynamic> json) => Person( |
| 235 | 235 | bioguideid: json["bioguideid"], |
| 236 | - birthday: DateTime.parse(json["birthday"]), | |
| 236 | + birthday: _parseDateTime(json["birthday"]), | |
| 237 | 237 | cspanid: json["cspanid"], |
| 238 | 238 | firstname: json["firstname"], |
| 239 | 239 | gender: genderValues.map[json["gender"]]!, |
| @@ -351,3 +351,11 @@ class EnumValues<T> { | ||
| 351 | 351 | return reverseMap; |
| 352 | 352 | } |
| 353 | 353 | } |
| 354 | + | |
| 355 | +DateTime _parseDateTime(String value) { | |
| 356 | + final date = value.substring(0, 10); | |
| 357 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 358 | + throw FormatException('Invalid date-time', value); | |
| 359 | + } | |
| 360 | + return DateTime.parse(value.toUpperCase()); | |
| 361 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/262f0.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -439,3 +439,11 @@ class EnumValues<T> { | ||
| 439 | 439 | return reverseMap; |
| 440 | 440 | } |
| 441 | 441 | } |
| 442 | + | |
| 443 | +DateTime _parseDateTime(String value) { | |
| 444 | + final date = value.substring(0, 10); | |
| 445 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 446 | + throw FormatException('Invalid date-time', value); | |
| 447 | + } | |
| 448 | + return DateTime.parse(value.toUpperCase()); | |
| 449 | +} |
Test case
1 generated file · +11 −3test/inputs/json/misc/2d4e2.json
Mdartdefault / TopLevel.dart+11 −3
| @@ -109,7 +109,7 @@ class Object { | ||
| 109 | 109 | current: json["current"], |
| 110 | 110 | description: json["description"], |
| 111 | 111 | district: (json.containsKey("district") ? json["district"] : throw FormatException('Missing required property')), |
| 112 | - enddate: DateTime.parse(json["enddate"]), | |
| 112 | + enddate: _parseDateTime(json["enddate"]), | |
| 113 | 113 | extra: Extra.fromJson(json["extra"]), |
| 114 | 114 | id: json["id"], |
| 115 | 115 | leadershipTitle: (json.containsKey("leadership_title") ? json["leadership_title"] : throw FormatException('Missing required property')), |
| @@ -122,7 +122,7 @@ class Object { | ||
| 122 | 122 | senatorClassLabel: senatorClassLabelValues.map[json["senator_class_label"]]!, |
| 123 | 123 | senatorRank: senatorRankValues.map[json["senator_rank"]]!, |
| 124 | 124 | senatorRankLabel: senatorRankLabelValues.map[json["senator_rank_label"]]!, |
| 125 | - startdate: DateTime.parse(json["startdate"]), | |
| 125 | + startdate: _parseDateTime(json["startdate"]), | |
| 126 | 126 | state: json["state"], |
| 127 | 127 | title: titleValues.map[json["title"]]!, |
| 128 | 128 | titleLong: roleTypeLabelValues.map[json["title_long"]]!, |
| @@ -243,7 +243,7 @@ class Person { | ||
| 243 | 243 | |
| 244 | 244 | factory Person.fromJson(Map<String, dynamic> json) => Person( |
| 245 | 245 | bioguideid: json["bioguideid"], |
| 246 | - birthday: DateTime.parse(json["birthday"]), | |
| 246 | + birthday: _parseDateTime(json["birthday"]), | |
| 247 | 247 | cspanid: json["cspanid"], |
| 248 | 248 | firstname: json["firstname"], |
| 249 | 249 | gender: genderValues.map[json["gender"]]!, |
| @@ -395,3 +395,11 @@ class EnumValues<T> { | ||
| 395 | 395 | return reverseMap; |
| 396 | 396 | } |
| 397 | 397 | } |
| 398 | + | |
| 399 | +DateTime _parseDateTime(String value) { | |
| 400 | + final date = value.substring(0, 10); | |
| 401 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 402 | + throw FormatException('Invalid date-time', value); | |
| 403 | + } | |
| 404 | + return DateTime.parse(value.toUpperCase()); | |
| 405 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/32d5c.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -30,7 +30,7 @@ class TopLevel { | ||
| 30 | 30 | }); |
| 31 | 31 | |
| 32 | 32 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 33 | - birthDate: (json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property'))), | |
| 33 | + birthDate: (json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property'))), | |
| 34 | 34 | birthDateIsProtected: json["BirthDateIsProtected"], |
| 35 | 35 | genderTypeId: json["GenderTypeID"], |
| 36 | 36 | notes: json["Notes"], |
| @@ -51,3 +51,11 @@ class TopLevel { | ||
| 51 | 51 | "PreferredName": preferredName, |
| 52 | 52 | }; |
| 53 | 53 | } |
| 54 | + | |
| 55 | +DateTime _parseDateTime(String value) { | |
| 56 | + final date = value.substring(0, 10); | |
| 57 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 58 | + throw FormatException('Invalid date-time', value); | |
| 59 | + } | |
| 60 | + return DateTime.parse(value.toUpperCase()); | |
| 61 | +} |
Test case
1 generated file · +14 −6test/inputs/json/misc/337ed.json
Mdartdefault / TopLevel.dart+14 −6
| @@ -131,11 +131,11 @@ class Result { | ||
| 131 | 131 | costAbsolute: (json.containsKey("cost_absolute") ? json["cost_absolute"] : throw FormatException('Missing required property')), |
| 132 | 132 | costMax: (json.containsKey("cost_max") ? json["cost_max"] : throw FormatException('Missing required property')), |
| 133 | 133 | costMin: (json.containsKey("cost_min") ? json["cost_min"] : throw FormatException('Missing required property')), |
| 134 | - createdAt: DateTime.parse(json["created_at"]), | |
| 134 | + createdAt: _parseDateTime(json["created_at"]), | |
| 135 | 135 | customIncomes: List<CustomIncome>.from(json["customIncomes"].map((x) => CustomIncome.fromJson(x))), |
| 136 | 136 | directRepCostsMax: (json.containsKey("direct_rep_costs_max") ? json["direct_rep_costs_max"] : throw FormatException('Missing required property')), |
| 137 | 137 | directRepCostsMin: (json.containsKey("direct_rep_costs_min") ? json["direct_rep_costs_min"] : throw FormatException('Missing required property')), |
| 138 | - endDate: DateTime.parse(json["end_date"]), | |
| 138 | + endDate: _parseDateTime(json["end_date"]), | |
| 139 | 139 | eurSourcesGrants: json["eur_sources_grants"], |
| 140 | 140 | eurSourcesGrantsSrc: (json.containsKey("eur_sources_grants_src") ? json["eur_sources_grants_src"] : throw FormatException('Missing required property')), |
| 141 | 141 | eurSourcesProcurement: json["eur_sources_procurement"], |
| @@ -151,14 +151,14 @@ class Result { | ||
| 151 | 151 | publicFinancingNational: (json.containsKey("public_financing_national") ? json["public_financing_national"] : throw FormatException('Missing required property')), |
| 152 | 152 | publicFinancingTotal: (json.containsKey("public_financing_total") ? json["public_financing_total"] : throw FormatException('Missing required property')), |
| 153 | 153 | representative: json["representative"], |
| 154 | - startDate: DateTime.parse(json["start_date"]), | |
| 154 | + startDate: _parseDateTime(json["start_date"]), | |
| 155 | 155 | status: statusValues.map[json["status"]]!, |
| 156 | 156 | totalBudget: (json.containsKey("total_budget") ? json["total_budget"] : throw FormatException('Missing required property')), |
| 157 | 157 | turnoverAbsolute: (json.containsKey("turnover_absolute") ? json["turnover_absolute"] : throw FormatException('Missing required property')), |
| 158 | 158 | turnoverMax: (json.containsKey("turnover_max") ? json["turnover_max"] : throw FormatException('Missing required property')), |
| 159 | 159 | turnoverMin: (json.containsKey("turnover_min") ? json["turnover_min"] : throw FormatException('Missing required property')), |
| 160 | 160 | type: resultTypeValues.map[json["type"]]!, |
| 161 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 161 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 162 | 162 | uri: json["uri"], |
| 163 | 163 | ); |
| 164 | 164 | |
| @@ -221,12 +221,12 @@ class CustomIncome { | ||
| 221 | 221 | |
| 222 | 222 | factory CustomIncome.fromJson(Map<String, dynamic> json) => CustomIncome( |
| 223 | 223 | amount: json["amount"], |
| 224 | - createdAt: DateTime.parse(json["created_at"]), | |
| 224 | + createdAt: _parseDateTime(json["created_at"]), | |
| 225 | 225 | id: json["id"], |
| 226 | 226 | name: json["name"], |
| 227 | 227 | status: statusValues.map[json["status"]]!, |
| 228 | 228 | type: customIncomeTypeValues.map[json["type"]]!, |
| 229 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 229 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 230 | 230 | uri: json["uri"], |
| 231 | 231 | ); |
| 232 | 232 | |
| @@ -285,3 +285,11 @@ class EnumValues<T> { | ||
| 285 | 285 | return reverseMap; |
| 286 | 286 | } |
| 287 | 287 | } |
| 288 | + | |
| 289 | +DateTime _parseDateTime(String value) { | |
| 290 | + final date = value.substring(0, 10); | |
| 291 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 292 | + throw FormatException('Invalid date-time', value); | |
| 293 | + } | |
| 294 | + return DateTime.parse(value.toUpperCase()); | |
| 295 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/3659d.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/3f1ce.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -435,3 +435,11 @@ class EnumValues<T> { | ||
| 435 | 435 | return reverseMap; |
| 436 | 436 | } |
| 437 | 437 | } |
| 438 | + | |
| 439 | +DateTime _parseDateTime(String value) { | |
| 440 | + final date = value.substring(0, 10); | |
| 441 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 442 | + throw FormatException('Invalid date-time', value); | |
| 443 | + } | |
| 444 | + return DateTime.parse(value.toUpperCase()); | |
| 445 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/43eaf.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/4961a.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/4a0d7.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/4c547.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -415,3 +415,11 @@ class Wind { | ||
| 415 | 415 | "speed": speed, |
| 416 | 416 | }; |
| 417 | 417 | } |
| 418 | + | |
| 419 | +DateTime _parseDateTime(String value) { | |
| 420 | + final date = value.substring(0, 10); | |
| 421 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 422 | + throw FormatException('Invalid date-time', value); | |
| 423 | + } | |
| 424 | + return DateTime.parse(value.toUpperCase()); | |
| 425 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/4e336.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/54d32.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -76,12 +76,12 @@ class Result { | ||
| 76 | 76 | }); |
| 77 | 77 | |
| 78 | 78 | factory Result.fromJson(Map<String, dynamic> json) => Result( |
| 79 | - createdAt: DateTime.parse(json["created_at"]), | |
| 79 | + createdAt: _parseDateTime(json["created_at"]), | |
| 80 | 80 | id: json["id"], |
| 81 | 81 | personId: json["person_id"], |
| 82 | 82 | representativeId: json["representative_id"], |
| 83 | 83 | status: statusValues.map[json["status"]]!, |
| 84 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 84 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 85 | 85 | ); |
| 86 | 86 | |
| 87 | 87 | Map<String, dynamic> toJson() => { |
| @@ -115,3 +115,11 @@ class EnumValues<T> { | ||
| 115 | 115 | return reverseMap; |
| 116 | 116 | } |
| 117 | 117 | } |
| 118 | + | |
| 119 | +DateTime _parseDateTime(String value) { | |
| 120 | + final date = value.substring(0, 10); | |
| 121 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 122 | + throw FormatException('Invalid date-time', value); | |
| 123 | + } | |
| 124 | + return DateTime.parse(value.toUpperCase()); | |
| 125 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/5eae5.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -22,7 +22,7 @@ class TopLevel { | ||
| 22 | 22 | }); |
| 23 | 23 | |
| 24 | 24 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 25 | - date: DateTime.parse(json["Date"]), | |
| 25 | + date: _parseDateTime(json["Date"]), | |
| 26 | 26 | id: json["ID"], |
| 27 | 27 | sponsor: json["Sponsor"], |
| 28 | 28 | title: json["Title"], |
| @@ -35,3 +35,11 @@ class TopLevel { | ||
| 35 | 35 | "Title": title, |
| 36 | 36 | }; |
| 37 | 37 | } |
| 38 | + | |
| 39 | +DateTime _parseDateTime(String value) { | |
| 40 | + final date = value.substring(0, 10); | |
| 41 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 42 | + throw FormatException('Invalid date-time', value); | |
| 43 | + } | |
| 44 | + return DateTime.parse(value.toUpperCase()); | |
| 45 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/5f3a1.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/6260a.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/65dec.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -45,7 +45,7 @@ class TopLevel { | ||
| 45 | 45 | mkmId: json["mkm_id"], |
| 46 | 46 | mkmName: json["mkm_name"], |
| 47 | 47 | name: json["name"], |
| 48 | - releaseDate: DateTime.parse(json["releaseDate"]), | |
| 48 | + releaseDate: _parseDateTime(json["releaseDate"]), | |
| 49 | 49 | type: json["type"], |
| 50 | 50 | ); |
| 51 | 51 | |
| @@ -284,7 +284,7 @@ class Ruling { | ||
| 284 | 284 | }); |
| 285 | 285 | |
| 286 | 286 | factory Ruling.fromJson(Map<String, dynamic> json) => Ruling( |
| 287 | - date: DateTime.parse(json["date"]), | |
| 287 | + date: _parseDateTime(json["date"]), | |
| 288 | 288 | text: json["text"], |
| 289 | 289 | ); |
| 290 | 290 | |
| @@ -323,3 +323,11 @@ class EnumValues<T> { | ||
| 323 | 323 | return reverseMap; |
| 324 | 324 | } |
| 325 | 325 | } |
| 326 | + | |
| 327 | +DateTime _parseDateTime(String value) { | |
| 328 | + final date = value.substring(0, 10); | |
| 329 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 330 | + throw FormatException('Invalid date-time', value); | |
| 331 | + } | |
| 332 | + return DateTime.parse(value.toUpperCase()); | |
| 333 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/6dec6.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -439,3 +439,11 @@ class EnumValues<T> { | ||
| 439 | 439 | return reverseMap; |
| 440 | 440 | } |
| 441 | 441 | } |
| 442 | + | |
| 443 | +DateTime _parseDateTime(String value) { | |
| 444 | + final date = value.substring(0, 10); | |
| 445 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 446 | + throw FormatException('Invalid date-time', value); | |
| 447 | + } | |
| 448 | + return DateTime.parse(value.toUpperCase()); | |
| 449 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/70c77.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +12 −4test/inputs/json/misc/734ad.json
Mdartdefault / TopLevel.dart+12 −4
| @@ -199,7 +199,7 @@ class Result { | ||
| 199 | 199 | beOfficeTown: json["be_office_town"], |
| 200 | 200 | codeOfConduct: json["code_of_conduct"], |
| 201 | 201 | contactCountry: json["contact_country"], |
| 202 | - createdAt: DateTime.parse(json["created_at"]), | |
| 202 | + createdAt: _parseDateTime(json["created_at"]), | |
| 203 | 203 | entity: json["entity"], |
| 204 | 204 | goals: json["goals"], |
| 205 | 205 | head: json["head"], |
| @@ -214,7 +214,7 @@ class Result { | ||
| 214 | 214 | id: json["id"], |
| 215 | 215 | identificationCode: json["identification_code"], |
| 216 | 216 | infoMembers: json["info_members"], |
| 217 | - lastUpdateDate: DateTime.parse(json["last_update_date"]), | |
| 217 | + lastUpdateDate: _parseDateTime(json["last_update_date"]), | |
| 218 | 218 | legal: json["legal"], |
| 219 | 219 | legalStatus: json["legal_status"], |
| 220 | 220 | mainCategory: json["main_category"], |
| @@ -230,12 +230,12 @@ class Result { | ||
| 230 | 230 | networking: (json.containsKey("networking") ? json["networking"] : throw FormatException('Missing required property')), |
| 231 | 231 | numberOfNaturalPersons: (json.containsKey("number_of_natural_persons") ? json["number_of_natural_persons"] : throw FormatException('Missing required property')), |
| 232 | 232 | otherCodeOfConduct: (json.containsKey("other_code_of_conduct") ? json["other_code_of_conduct"] : throw FormatException('Missing required property')), |
| 233 | - registrationDate: DateTime.parse(json["registration_date"]), | |
| 233 | + registrationDate: _parseDateTime(json["registration_date"]), | |
| 234 | 234 | status: statusValues.map[json["status"]]!, |
| 235 | 235 | structureMembers: json["structure_members"], |
| 236 | 236 | subCategory: json["sub_category"], |
| 237 | 237 | subCategoryTitle: json["sub_category_title"], |
| 238 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 238 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 239 | 239 | uri: json["uri"], |
| 240 | 240 | webSiteUrl: (json.containsKey("web_site_url") ? json["web_site_url"] : throw FormatException('Missing required property')), |
| 241 | 241 | ); |
| @@ -323,3 +323,11 @@ class EnumValues<T> { | ||
| 323 | 323 | return reverseMap; |
| 324 | 324 | } |
| 325 | 325 | } |
| 326 | + | |
| 327 | +DateTime _parseDateTime(String value) { | |
| 328 | + final date = value.substring(0, 10); | |
| 329 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 330 | + throw FormatException('Invalid date-time', value); | |
| 331 | + } | |
| 332 | + return DateTime.parse(value.toUpperCase()); | |
| 333 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/75912.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/77392.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -35,7 +35,7 @@ class TopLevel { | ||
| 35 | 35 | |
| 36 | 36 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 37 | 37 | designation: json["designation"], |
| 38 | - discoveryDate: DateTime.parse(json["discovery_date"]), | |
| 38 | + discoveryDate: _parseDateTime(json["discovery_date"]), | |
| 39 | 39 | hMag: json["h_mag"], |
| 40 | 40 | iDeg: json["i_deg"], |
| 41 | 41 | moidAu: json["moid_au"], |
| @@ -107,3 +107,11 @@ class EnumValues<T> { | ||
| 107 | 107 | return reverseMap; |
| 108 | 108 | } |
| 109 | 109 | } |
| 110 | + | |
| 111 | +DateTime _parseDateTime(String value) { | |
| 112 | + final date = value.substring(0, 10); | |
| 113 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 114 | + throw FormatException('Invalid date-time', value); | |
| 115 | + } | |
| 116 | + return DateTime.parse(value.toUpperCase()); | |
| 117 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/7dfa6.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/7f568.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -49,7 +49,7 @@ class TopLevel { | ||
| 49 | 49 | comments: json["comments"], |
| 50 | 50 | commentsUrl: json["comments_url"], |
| 51 | 51 | commitsUrl: json["commits_url"], |
| 52 | - createdAt: DateTime.parse(json["created_at"]), | |
| 52 | + createdAt: _parseDateTime(json["created_at"]), | |
| 53 | 53 | description: (json.containsKey("description") ? json["description"] : throw FormatException('Missing required property')), |
| 54 | 54 | files: Map.from(json["files"]).map((k, v) => MapEntry<String, FileValue>(k, FileValue.fromJson(v))), |
| 55 | 55 | forksUrl: json["forks_url"], |
| @@ -59,7 +59,7 @@ class TopLevel { | ||
| 59 | 59 | id: json["id"], |
| 60 | 60 | public: json["public"], |
| 61 | 61 | truncated: json["truncated"], |
| 62 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 62 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 63 | 63 | url: json["url"], |
| 64 | 64 | user: (json.containsKey("user") ? json["user"] : throw FormatException('Missing required property')), |
| 65 | 65 | ); |
| @@ -143,3 +143,11 @@ class EnumValues<T> { | ||
| 143 | 143 | return reverseMap; |
| 144 | 144 | } |
| 145 | 145 | } |
| 146 | + | |
| 147 | +DateTime _parseDateTime(String value) { | |
| 148 | + final date = value.substring(0, 10); | |
| 149 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 150 | + throw FormatException('Invalid date-time', value); | |
| 151 | + } | |
| 152 | + return DateTime.parse(value.toUpperCase()); | |
| 153 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/80aff.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -78,12 +78,12 @@ class Result { | ||
| 78 | 78 | }); |
| 79 | 79 | |
| 80 | 80 | factory Result.fromJson(Map<String, dynamic> json) => Result( |
| 81 | - createdAt: DateTime.parse(json["created_at"]), | |
| 81 | + createdAt: _parseDateTime(json["created_at"]), | |
| 82 | 82 | id: json["id"], |
| 83 | 83 | items: json["items"], |
| 84 | 84 | name: json["name"], |
| 85 | 85 | parent: (json.containsKey("parent") ? json["parent"] : throw FormatException('Missing required property')), |
| 86 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 86 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 87 | 87 | uri: json["uri"], |
| 88 | 88 | ); |
| 89 | 89 | |
| @@ -97,3 +97,11 @@ class Result { | ||
| 97 | 97 | "uri": uri, |
| 98 | 98 | }; |
| 99 | 99 | } |
| 100 | + | |
| 101 | +DateTime _parseDateTime(String value) { | |
| 102 | + final date = value.substring(0, 10); | |
| 103 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 104 | + throw FormatException('Invalid date-time', value); | |
| 105 | + } | |
| 106 | + return DateTime.parse(value.toUpperCase()); | |
| 107 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/88130.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -415,3 +415,11 @@ class Wind { | ||
| 415 | 415 | "speed": speed, |
| 416 | 416 | }; |
| 417 | 417 | } |
| 418 | + | |
| 419 | +DateTime _parseDateTime(String value) { | |
| 420 | + final date = value.substring(0, 10); | |
| 421 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 422 | + throw FormatException('Invalid date-time', value); | |
| 423 | + } | |
| 424 | + return DateTime.parse(value.toUpperCase()); | |
| 425 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/8a62c.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/9617f.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/9929c.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -415,3 +415,11 @@ class Wind { | ||
| 415 | 415 | "speed": speed, |
| 416 | 416 | }; |
| 417 | 417 | } |
| 418 | + | |
| 419 | +DateTime _parseDateTime(String value) { | |
| 420 | + final date = value.substring(0, 10); | |
| 421 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 422 | + throw FormatException('Invalid date-time', value); | |
| 423 | + } | |
| 424 | + return DateTime.parse(value.toUpperCase()); | |
| 425 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/9ac3b.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -86,7 +86,7 @@ class Result { | ||
| 86 | 86 | }); |
| 87 | 87 | |
| 88 | 88 | factory Result.fromJson(Map<String, dynamic> json) => Result( |
| 89 | - createdAt: DateTime.parse(json["created_at"]), | |
| 89 | + createdAt: _parseDateTime(json["created_at"]), | |
| 90 | 90 | entity: json["entity"], |
| 91 | 91 | firstName: json["first_name"], |
| 92 | 92 | id: json["id"], |
| @@ -95,7 +95,7 @@ class Result { | ||
| 95 | 95 | position: (json.containsKey("position") ? json["position"] : throw FormatException('Missing required property')), |
| 96 | 96 | status: statusValues.map[json["status"]]!, |
| 97 | 97 | title: (json.containsKey("title") ? json["title"] : throw FormatException('Missing required property')) == null ? null : titleValues.map[(json.containsKey("title") ? json["title"] : throw FormatException('Missing required property'))]!, |
| 98 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 98 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 99 | 99 | uri: json["uri"], |
| 100 | 100 | ); |
| 101 | 101 | |
| @@ -145,3 +145,11 @@ class EnumValues<T> { | ||
| 145 | 145 | return reverseMap; |
| 146 | 146 | } |
| 147 | 147 | } |
| 148 | + | |
| 149 | +DateTime _parseDateTime(String value) { | |
| 150 | + final date = value.substring(0, 10); | |
| 151 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 152 | + throw FormatException('Invalid date-time', value); | |
| 153 | + } | |
| 154 | + return DateTime.parse(value.toUpperCase()); | |
| 155 | +} |
Test case
1 generated file · +11 −3test/inputs/json/misc/a0496.json
Mdartdefault / TopLevel.dart+11 −3
| @@ -55,15 +55,15 @@ class TopLevel { | ||
| 55 | 55 | displayUrl: json["display_url"], |
| 56 | 56 | errors: Errors.fromJson(json["errors"]), |
| 57 | 57 | frequency: json["frequency"], |
| 58 | - fromDate: DateTime.parse(json["from_date"]), | |
| 58 | + fromDate: _parseDateTime(json["from_date"]), | |
| 59 | 59 | id: json["id"], |
| 60 | 60 | name: json["name"], |
| 61 | 61 | premium: json["premium"], |
| 62 | 62 | sourceCode: json["source_code"], |
| 63 | 63 | sourceName: json["source_name"], |
| 64 | - toDate: DateTime.parse(json["to_date"]), | |
| 64 | + toDate: _parseDateTime(json["to_date"]), | |
| 65 | 65 | type: json["type"], |
| 66 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 66 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 67 | 67 | urlizeName: json["urlize_name"], |
| 68 | 68 | ); |
| 69 | 69 | |
| @@ -97,3 +97,11 @@ class Errors { | ||
| 97 | 97 | Map<String, dynamic> toJson() => { |
| 98 | 98 | }; |
| 99 | 99 | } |
| 100 | + | |
| 101 | +DateTime _parseDateTime(String value) { | |
| 102 | + final date = value.substring(0, 10); | |
| 103 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 104 | + throw FormatException('Invalid date-time', value); | |
| 105 | + } | |
| 106 | + return DateTime.parse(value.toUpperCase()); | |
| 107 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/a1eca.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -415,3 +415,11 @@ class Wind { | ||
| 415 | 415 | "speed": speed, |
| 416 | 416 | }; |
| 417 | 417 | } |
| 418 | + | |
| 419 | +DateTime _parseDateTime(String value) { | |
| 420 | + final date = value.substring(0, 10); | |
| 421 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 422 | + throw FormatException('Invalid date-time', value); | |
| 423 | + } | |
| 424 | + return DateTime.parse(value.toUpperCase()); | |
| 425 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/a9691.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/abb4b.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/ac944.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/b4865.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -49,7 +49,7 @@ class TopLevel { | ||
| 49 | 49 | recclass: json["recclass"], |
| 50 | 50 | reclat: json["reclat"], |
| 51 | 51 | reclong: json["reclong"], |
| 52 | - year: json["year"] == null ? null : DateTime.parse(json["year"]), | |
| 52 | + year: json["year"] == null ? null : _parseDateTime(json["year"]), | |
| 53 | 53 | ); |
| 54 | 54 | |
| 55 | 55 | Map<String, dynamic> toJson() => { |
| @@ -125,3 +125,11 @@ class EnumValues<T> { | ||
| 125 | 125 | return reverseMap; |
| 126 | 126 | } |
| 127 | 127 | } |
| 128 | + | |
| 129 | +DateTime _parseDateTime(String value) { | |
| 130 | + final date = value.substring(0, 10); | |
| 131 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 132 | + throw FormatException('Invalid date-time', value); | |
| 133 | + } | |
| 134 | + return DateTime.parse(value.toUpperCase()); | |
| 135 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/b6f2c.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/bb1ec.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/cd463.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/cf0d8.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -415,3 +415,11 @@ class Wind { | ||
| 415 | 415 | "speed": speed, |
| 416 | 416 | }; |
| 417 | 417 | } |
| 418 | + | |
| 419 | +DateTime _parseDateTime(String value) { | |
| 420 | + final date = value.substring(0, 10); | |
| 421 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 422 | + throw FormatException('Invalid date-time', value); | |
| 423 | + } | |
| 424 | + return DateTime.parse(value.toUpperCase()); | |
| 425 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/cfbce.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -21,7 +21,7 @@ class TopLevel { | ||
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | 23 | base: json["base"], |
| 24 | - date: DateTime.parse(json["date"]), | |
| 24 | + date: _parseDateTime(json["date"]), | |
| 25 | 25 | rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())), |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)), |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/d0908.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -34,7 +34,7 @@ class TotalPopulation { | ||
| 34 | 34 | }); |
| 35 | 35 | |
| 36 | 36 | factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation( |
| 37 | - date: DateTime.parse(json["date"]), | |
| 37 | + date: _parseDateTime(json["date"]), | |
| 38 | 38 | population: json["population"], |
| 39 | 39 | ); |
| 40 | 40 | |
| @@ -43,3 +43,11 @@ class TotalPopulation { | ||
| 43 | 43 | "population": population, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/d23d5.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -77,10 +77,10 @@ class Result { | ||
| 77 | 77 | |
| 78 | 78 | factory Result.fromJson(Map<String, dynamic> json) => Result( |
| 79 | 79 | acronym: (json.containsKey("acronym") ? json["acronym"] : throw FormatException('Missing required property')), |
| 80 | - createdAt: DateTime.parse(json["created_at"]), | |
| 80 | + createdAt: _parseDateTime(json["created_at"]), | |
| 81 | 81 | id: json["id"], |
| 82 | 82 | name: json["name"], |
| 83 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 83 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 84 | 84 | uri: json["uri"], |
| 85 | 85 | ); |
| 86 | 86 | |
| @@ -93,3 +93,11 @@ class Result { | ||
| 93 | 93 | "uri": uri, |
| 94 | 94 | }; |
| 95 | 95 | } |
| 96 | + | |
| 97 | +DateTime _parseDateTime(String value) { | |
| 98 | + final date = value.substring(0, 10); | |
| 99 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 100 | + throw FormatException('Invalid date-time', value); | |
| 101 | + } | |
| 102 | + return DateTime.parse(value.toUpperCase()); | |
| 103 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/dbfb3.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -437,3 +437,11 @@ class EnumValues<T> { | ||
| 437 | 437 | return reverseMap; |
| 438 | 438 | } |
| 439 | 439 | } |
| 440 | + | |
| 441 | +DateTime _parseDateTime(String value) { | |
| 442 | + final date = value.substring(0, 10); | |
| 443 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 444 | + throw FormatException('Invalid date-time', value); | |
| 445 | + } | |
| 446 | + return DateTime.parse(value.toUpperCase()); | |
| 447 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/dc44f.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -45,7 +45,7 @@ class TopLevel { | ||
| 45 | 45 | mkmId: json["mkm_id"], |
| 46 | 46 | mkmName: json["mkm_name"], |
| 47 | 47 | name: json["name"], |
| 48 | - releaseDate: DateTime.parse(json["releaseDate"]), | |
| 48 | + releaseDate: _parseDateTime(json["releaseDate"]), | |
| 49 | 49 | type: json["type"], |
| 50 | 50 | ); |
| 51 | 51 | |
| @@ -358,7 +358,7 @@ class Ruling { | ||
| 358 | 358 | }); |
| 359 | 359 | |
| 360 | 360 | factory Ruling.fromJson(Map<String, dynamic> json) => Ruling( |
| 361 | - date: DateTime.parse(json["date"]), | |
| 361 | + date: _parseDateTime(json["date"]), | |
| 362 | 362 | text: json["text"], |
| 363 | 363 | ); |
| 364 | 364 | |
| @@ -405,3 +405,11 @@ class EnumValues<T> { | ||
| 405 | 405 | return reverseMap; |
| 406 | 406 | } |
| 407 | 407 | } |
| 408 | + | |
| 409 | +DateTime _parseDateTime(String value) { | |
| 410 | + final date = value.substring(0, 10); | |
| 411 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 412 | + throw FormatException('Invalid date-time', value); | |
| 413 | + } | |
| 414 | + return DateTime.parse(value.toUpperCase()); | |
| 415 | +} |
Test case
1 generated file · +10 −2test/inputs/json/misc/dd1ce.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -45,7 +45,7 @@ class TopLevel { | ||
| 45 | 45 | mkmId: json["mkm_id"], |
| 46 | 46 | mkmName: json["mkm_name"], |
| 47 | 47 | name: json["name"], |
| 48 | - releaseDate: DateTime.parse(json["releaseDate"]), | |
| 48 | + releaseDate: _parseDateTime(json["releaseDate"]), | |
| 49 | 49 | type: json["type"], |
| 50 | 50 | ); |
| 51 | 51 | |
| @@ -358,7 +358,7 @@ class Ruling { | ||
| 358 | 358 | }); |
| 359 | 359 | |
| 360 | 360 | factory Ruling.fromJson(Map<String, dynamic> json) => Ruling( |
| 361 | - date: DateTime.parse(json["date"]), | |
| 361 | + date: _parseDateTime(json["date"]), | |
| 362 | 362 | text: json["text"], |
| 363 | 363 | ); |
| 364 | 364 | |
| @@ -405,3 +405,11 @@ class EnumValues<T> { | ||
| 405 | 405 | return reverseMap; |
| 406 | 406 | } |
| 407 | 407 | } |
| 408 | + | |
| 409 | +DateTime _parseDateTime(String value) { | |
| 410 | + final date = value.substring(0, 10); | |
| 411 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 412 | + throw FormatException('Invalid date-time', value); | |
| 413 | + } | |
| 414 | + return DateTime.parse(value.toUpperCase()); | |
| 415 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/df957.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -415,3 +415,11 @@ class Wind { | ||
| 415 | 415 | "speed": speed, |
| 416 | 416 | }; |
| 417 | 417 | } |
| 418 | + | |
| 419 | +DateTime _parseDateTime(String value) { | |
| 420 | + final date = value.substring(0, 10); | |
| 421 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 422 | + throw FormatException('Invalid date-time', value); | |
| 423 | + } | |
| 424 | + return DateTime.parse(value.toUpperCase()); | |
| 425 | +} |
Test case
1 generated file · +9 −1test/inputs/json/misc/e2915.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Query { | ||
| 39 | 39 | |
| 40 | 40 | factory Query.fromJson(Map<String, dynamic> json) => Query( |
| 41 | 41 | count: json["count"], |
| 42 | - created: DateTime.parse(json["created"]), | |
| 42 | + created: _parseDateTime(json["created"]), | |
| 43 | 43 | lang: json["lang"], |
| 44 | 44 | results: Results.fromJson(json["results"]), |
| 45 | 45 | ); |
| @@ -435,3 +435,11 @@ class EnumValues<T> { | ||
| 435 | 435 | return reverseMap; |
| 436 | 436 | } |
| 437 | 437 | } |
| 438 | + | |
| 439 | +DateTime _parseDateTime(String value) { | |
| 440 | + final date = value.substring(0, 10); | |
| 441 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 442 | + throw FormatException('Invalid date-time', value); | |
| 443 | + } | |
| 444 | + return DateTime.parse(value.toUpperCase()); | |
| 445 | +} |
Test case
1 generated file · +10 −2test/inputs/json/priority/bug2590.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -36,8 +36,8 @@ class Invoice { | ||
| 36 | 36 | }); |
| 37 | 37 | |
| 38 | 38 | factory Invoice.fromJson(Map<String, dynamic> json) => Invoice( |
| 39 | - createdAt: (json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property'))), | |
| 40 | - dueDate: (json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property'))), | |
| 39 | + createdAt: (json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property'))), | |
| 40 | + dueDate: (json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property'))), | |
| 41 | 41 | name: json["name"], |
| 42 | 42 | ); |
| 43 | 43 | |
| @@ -47,3 +47,11 @@ class Invoice { | ||
| 47 | 47 | "name": name, |
| 48 | 48 | }; |
| 49 | 49 | } |
| 50 | + | |
| 51 | +DateTime _parseDateTime(String value) { | |
| 52 | + final date = value.substring(0, 10); | |
| 53 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 54 | + throw FormatException('Invalid date-time', value); | |
| 55 | + } | |
| 56 | + return DateTime.parse(value.toUpperCase()); | |
| 57 | +} |
Test case
1 generated file · +10 −2test/inputs/json/priority/bug2663.json
Mdartdefault / TopLevel.dart+10 −2
| @@ -20,8 +20,8 @@ class TopLevel { | ||
| 20 | 20 | }); |
| 21 | 21 | |
| 22 | 22 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 23 | - birthday: DateTime.parse(json["birthday"]), | |
| 24 | - lastSeen: DateTime.parse(json["lastSeen"]), | |
| 23 | + birthday: _parseDateTime(json["birthday"]), | |
| 24 | + lastSeen: _parseDateTime(json["lastSeen"]), | |
| 25 | 25 | name: json["name"], |
| 26 | 26 | ); |
| 27 | 27 | |
| @@ -31,3 +31,11 @@ class TopLevel { | ||
| 31 | 31 | "name": name, |
| 32 | 32 | }; |
| 33 | 33 | } |
| 34 | + | |
| 35 | +DateTime _parseDateTime(String value) { | |
| 36 | + final date = value.substring(0, 10); | |
| 37 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 38 | + throw FormatException('Invalid date-time', value); | |
| 39 | + } | |
| 40 | + return DateTime.parse(value.toUpperCase()); | |
| 41 | +} |
Test case
1 generated file · +9 −1test/inputs/json/priority/keywords.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -1688,7 +1688,7 @@ class DateTimeClass { | ||
| 1688 | 1688 | }); |
| 1689 | 1689 | |
| 1690 | 1690 | factory DateTimeClass.fromJson(Map<String, dynamic> json) => DateTimeClass( |
| 1691 | - dateTime: DateTime.parse(json["DateTime"]), | |
| 1691 | + dateTime: _parseDateTime(json["DateTime"]), | |
| 1692 | 1692 | ); |
| 1693 | 1693 | |
| 1694 | 1694 | Map<String, dynamic> toJson() => { |
| @@ -6805,3 +6805,11 @@ class EnumValues<T> { | ||
| 6805 | 6805 | return reverseMap; |
| 6806 | 6806 | } |
| 6807 | 6807 | } |
| 6808 | + | |
| 6809 | +DateTime _parseDateTime(String value) { | |
| 6810 | + final date = value.substring(0, 10); | |
| 6811 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 6812 | + throw FormatException('Invalid date-time', value); | |
| 6813 | + } | |
| 6814 | + return DateTime.parse(value.toUpperCase()); | |
| 6815 | +} |
Test case
1 generated file · +24 −16test/inputs/json/samples/github-events.json
Mdartdefault / TopLevel.dart+24 −16
| @@ -31,7 +31,7 @@ class TopLevel { | ||
| 31 | 31 | |
| 32 | 32 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 33 | 33 | actor: Actor.fromJson(json["actor"]), |
| 34 | - createdAt: DateTime.parse(json["created_at"]), | |
| 34 | + createdAt: _parseDateTime(json["created_at"]), | |
| 35 | 35 | id: json["id"], |
| 36 | 36 | org: json["org"] == null ? null : Actor.fromJson(json["org"]), |
| 37 | 37 | payload: Payload.fromJson(json["payload"]), |
| @@ -187,11 +187,11 @@ class Comment { | ||
| 187 | 187 | |
| 188 | 188 | factory Comment.fromJson(Map<String, dynamic> json) => Comment( |
| 189 | 189 | body: json["body"], |
| 190 | - createdAt: DateTime.parse(json["created_at"]), | |
| 190 | + createdAt: _parseDateTime(json["created_at"]), | |
| 191 | 191 | htmlUrl: json["html_url"], |
| 192 | 192 | id: json["id"], |
| 193 | 193 | issueUrl: json["issue_url"], |
| 194 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 194 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 195 | 195 | url: json["url"], |
| 196 | 196 | user: User.fromJson(json["user"]), |
| 197 | 197 | ); |
| @@ -403,10 +403,10 @@ class Issue { | ||
| 403 | 403 | assignee: (json.containsKey("assignee") ? json["assignee"] : throw FormatException('Missing required property')), |
| 404 | 404 | assignees: List<dynamic>.from(json["assignees"].map((x) => x)), |
| 405 | 405 | body: json["body"], |
| 406 | - closedAt: (json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property'))), | |
| 406 | + closedAt: (json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property'))), | |
| 407 | 407 | comments: json["comments"], |
| 408 | 408 | commentsUrl: json["comments_url"], |
| 409 | - createdAt: DateTime.parse(json["created_at"]), | |
| 409 | + createdAt: _parseDateTime(json["created_at"]), | |
| 410 | 410 | eventsUrl: json["events_url"], |
| 411 | 411 | htmlUrl: json["html_url"], |
| 412 | 412 | id: json["id"], |
| @@ -419,7 +419,7 @@ class Issue { | ||
| 419 | 419 | repositoryUrl: json["repository_url"], |
| 420 | 420 | state: json["state"], |
| 421 | 421 | title: json["title"], |
| 422 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 422 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 423 | 423 | url: json["url"], |
| 424 | 424 | user: User.fromJson(json["user"]), |
| 425 | 425 | ); |
| @@ -520,10 +520,10 @@ class Milestone { | ||
| 520 | 520 | factory Milestone.fromJson(Map<String, dynamic> json) => Milestone( |
| 521 | 521 | closedAt: (json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property')), |
| 522 | 522 | closedIssues: json["closed_issues"], |
| 523 | - createdAt: DateTime.parse(json["created_at"]), | |
| 523 | + createdAt: _parseDateTime(json["created_at"]), | |
| 524 | 524 | creator: User.fromJson(json["creator"]), |
| 525 | 525 | description: json["description"], |
| 526 | - dueOn: (json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property'))), | |
| 526 | + dueOn: (json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property'))), | |
| 527 | 527 | htmlUrl: json["html_url"], |
| 528 | 528 | id: json["id"], |
| 529 | 529 | labelsUrl: json["labels_url"], |
| @@ -531,7 +531,7 @@ class Milestone { | ||
| 531 | 531 | openIssues: json["open_issues"], |
| 532 | 532 | state: json["state"], |
| 533 | 533 | title: json["title"], |
| 534 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 534 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 535 | 535 | url: json["url"], |
| 536 | 536 | ); |
| 537 | 537 | |
| @@ -676,12 +676,12 @@ class PayloadPullRequest { | ||
| 676 | 676 | base: Base.fromJson(json["base"]), |
| 677 | 677 | body: json["body"], |
| 678 | 678 | changedFiles: json["changed_files"], |
| 679 | - closedAt: DateTime.parse(json["closed_at"]), | |
| 679 | + closedAt: _parseDateTime(json["closed_at"]), | |
| 680 | 680 | comments: json["comments"], |
| 681 | 681 | commentsUrl: json["comments_url"], |
| 682 | 682 | commits: json["commits"], |
| 683 | 683 | commitsUrl: json["commits_url"], |
| 684 | - createdAt: DateTime.parse(json["created_at"]), | |
| 684 | + createdAt: _parseDateTime(json["created_at"]), | |
| 685 | 685 | deletions: json["deletions"], |
| 686 | 686 | diffUrl: json["diff_url"], |
| 687 | 687 | head: Base.fromJson(json["head"]), |
| @@ -695,7 +695,7 @@ class PayloadPullRequest { | ||
| 695 | 695 | mergeable: (json.containsKey("mergeable") ? json["mergeable"] : throw FormatException('Missing required property')), |
| 696 | 696 | mergeableState: json["mergeable_state"], |
| 697 | 697 | merged: json["merged"], |
| 698 | - mergedAt: DateTime.parse(json["merged_at"]), | |
| 698 | + mergedAt: _parseDateTime(json["merged_at"]), | |
| 699 | 699 | mergedBy: User.fromJson(json["merged_by"]), |
| 700 | 700 | milestone: (json.containsKey("milestone") ? json["milestone"] : throw FormatException('Missing required property')), |
| 701 | 701 | number: json["number"], |
| @@ -708,7 +708,7 @@ class PayloadPullRequest { | ||
| 708 | 708 | state: json["state"], |
| 709 | 709 | statusesUrl: json["statuses_url"], |
| 710 | 710 | title: json["title"], |
| 711 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 711 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 712 | 712 | url: json["url"], |
| 713 | 713 | user: User.fromJson(json["user"]), |
| 714 | 714 | ); |
| @@ -945,7 +945,7 @@ class BaseRepo { | ||
| 945 | 945 | compareUrl: json["compare_url"], |
| 946 | 946 | contentsUrl: json["contents_url"], |
| 947 | 947 | contributorsUrl: json["contributors_url"], |
| 948 | - createdAt: DateTime.parse(json["created_at"]), | |
| 948 | + createdAt: _parseDateTime(json["created_at"]), | |
| 949 | 949 | defaultBranch: json["default_branch"], |
| 950 | 950 | deploymentsUrl: json["deployments_url"], |
| 951 | 951 | description: json["description"], |
| @@ -986,7 +986,7 @@ class BaseRepo { | ||
| 986 | 986 | owner: User.fromJson(json["owner"]), |
| 987 | 987 | private: json["private"], |
| 988 | 988 | pullsUrl: json["pulls_url"], |
| 989 | - pushedAt: DateTime.parse(json["pushed_at"]), | |
| 989 | + pushedAt: _parseDateTime(json["pushed_at"]), | |
| 990 | 990 | releasesUrl: json["releases_url"], |
| 991 | 991 | size: json["size"], |
| 992 | 992 | sshUrl: json["ssh_url"], |
| @@ -999,7 +999,7 @@ class BaseRepo { | ||
| 999 | 999 | tagsUrl: json["tags_url"], |
| 1000 | 1000 | teamsUrl: json["teams_url"], |
| 1001 | 1001 | treesUrl: json["trees_url"], |
| 1002 | - updatedAt: DateTime.parse(json["updated_at"]), | |
| 1002 | + updatedAt: _parseDateTime(json["updated_at"]), | |
| 1003 | 1003 | url: json["url"], |
| 1004 | 1004 | watchers: json["watchers"], |
| 1005 | 1005 | watchersCount: json["watchers_count"], |
| @@ -1173,3 +1173,11 @@ class EnumValues<T> { | ||
| 1173 | 1173 | return reverseMap; |
| 1174 | 1174 | } |
| 1175 | 1175 | } |
| 1176 | + | |
| 1177 | +DateTime _parseDateTime(String value) { | |
| 1178 | + final date = value.substring(0, 10); | |
| 1179 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 1180 | + throw FormatException('Invalid date-time', value); | |
| 1181 | + } | |
| 1182 | + return DateTime.parse(value.toUpperCase()); | |
| 1183 | +} |
Test case
1 generated file · +9 −1test/inputs/json/samples/null-safe.json
Mdartdefault / TopLevel.dart+9 −1
| @@ -39,7 +39,7 @@ class Item { | ||
| 39 | 39 | |
| 40 | 40 | factory Item.fromJson(Map<String, dynamic> json) => Item( |
| 41 | 41 | address: json["address"] == null ? null : Address.fromJson(json["address"]), |
| 42 | - createdAt: json["created_at"] == null ? null : DateTime.parse(json["created_at"]), | |
| 42 | + createdAt: json["created_at"] == null ? null : _parseDateTime(json["created_at"]), | |
| 43 | 43 | name: json["name"], |
| 44 | 44 | sex: (json.containsKey("sex") ? json["sex"] : throw FormatException('Missing required property')), |
| 45 | 45 | ); |
| @@ -75,3 +75,11 @@ class Address { | ||
| 75 | 75 | "street": street, |
| 76 | 76 | }; |
| 77 | 77 | } |
| 78 | + | |
| 79 | +DateTime _parseDateTime(String value) { | |
| 80 | + final date = value.substring(0, 10); | |
| 81 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 82 | + throw FormatException('Invalid date-time', value); | |
| 83 | + } | |
| 84 | + return DateTime.parse(value.toUpperCase()); | |
| 85 | +} |
Test case
1 generated file · +11 −3test/inputs/json/samples/us-senators.json
Mdartdefault / TopLevel.dart+11 −3
| @@ -107,7 +107,7 @@ class Object { | ||
| 107 | 107 | current: json["current"], |
| 108 | 108 | description: json["description"], |
| 109 | 109 | district: (json.containsKey("district") ? json["district"] : throw FormatException('Missing required property')), |
| 110 | - enddate: DateTime.parse(json["enddate"]), | |
| 110 | + enddate: _parseDateTime(json["enddate"]), | |
| 111 | 111 | extra: Extra.fromJson(json["extra"]), |
| 112 | 112 | leadershipTitle: (json.containsKey("leadership_title") ? json["leadership_title"] : throw FormatException('Missing required property')), |
| 113 | 113 | party: partyValues.map[json["party"]]!, |
| @@ -119,7 +119,7 @@ class Object { | ||
| 119 | 119 | senatorClassLabel: senatorClassLabelValues.map[json["senator_class_label"]]!, |
| 120 | 120 | senatorRank: senatorRankValues.map[json["senator_rank"]]!, |
| 121 | 121 | senatorRankLabel: senatorRankLabelValues.map[json["senator_rank_label"]]!, |
| 122 | - startdate: DateTime.parse(json["startdate"]), | |
| 122 | + startdate: _parseDateTime(json["startdate"]), | |
| 123 | 123 | state: json["state"], |
| 124 | 124 | title: titleValues.map[json["title"]]!, |
| 125 | 125 | titleLong: roleTypeLabelValues.map[json["title_long"]]!, |
| @@ -237,7 +237,7 @@ class Person { | ||
| 237 | 237 | |
| 238 | 238 | factory Person.fromJson(Map<String, dynamic> json) => Person( |
| 239 | 239 | bioguideid: json["bioguideid"], |
| 240 | - birthday: DateTime.parse(json["birthday"]), | |
| 240 | + birthday: _parseDateTime(json["birthday"]), | |
| 241 | 241 | cspanid: json["cspanid"], |
| 242 | 242 | firstname: json["firstname"], |
| 243 | 243 | gender: genderValues.map[json["gender"]]!, |
| @@ -387,3 +387,11 @@ class EnumValues<T> { | ||
| 387 | 387 | return reverseMap; |
| 388 | 388 | } |
| 389 | 389 | } |
| 390 | + | |
| 391 | +DateTime _parseDateTime(String value) { | |
| 392 | + final date = value.substring(0, 10); | |
| 393 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 394 | + throw FormatException('Invalid date-time', value); | |
| 395 | + } | |
| 396 | + return DateTime.parse(value.toUpperCase()); | |
| 397 | +} |
Test case
1 generated file · +10 −2test/inputs/schema/date-time.schema
Mschema-dartdefault / TopLevel.dart+10 −2
| @@ -25,8 +25,8 @@ class TopLevel { | ||
| 25 | 25 | |
| 26 | 26 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 27 | 27 | complexUnionArray: List<dynamic>.from(json["complex-union-array"].map((x) => x)), |
| 28 | - date: DateTime.parse(json["date"]), | |
| 29 | - dateTime: DateTime.parse(json["date-time"]), | |
| 28 | + date: _parseDateTime(json["date"]), | |
| 29 | + dateTime: _parseDateTime(json["date-time"]), | |
| 30 | 30 | time: json["time"], |
| 31 | 31 | unionArray: List<String>.from(json["union-array"].map((x) => x)), |
| 32 | 32 | ); |
| @@ -61,3 +61,11 @@ class EnumValues<T> { | ||
| 61 | 61 | return reverseMap; |
| 62 | 62 | } |
| 63 | 63 | } |
| 64 | + | |
| 65 | +DateTime _parseDateTime(String value) { | |
| 66 | + final date = value.substring(0, 10); | |
| 67 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 68 | + throw FormatException('Invalid date-time', value); | |
| 69 | + } | |
| 70 | + return DateTime.parse(value.toUpperCase()); | |
| 71 | +} |
Test case
1 generated file · +12 −4test/inputs/schema/optional-date-time.schema
Mschema-dartdefault / TopLevel.dart+12 −4
| @@ -26,11 +26,11 @@ class TopLevel { | ||
| 26 | 26 | }); |
| 27 | 27 | |
| 28 | 28 | factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel( |
| 29 | - optionalDate: json["optional-date"] == null ? null : DateTime.parse(json["optional-date"]), | |
| 30 | - optionalDateTime: json["optional-date-time"] == null ? null : DateTime.parse(json["optional-date-time"]), | |
| 29 | + optionalDate: json["optional-date"] == null ? null : _parseDateTime(json["optional-date"]), | |
| 30 | + optionalDateTime: json["optional-date-time"] == null ? null : _parseDateTime(json["optional-date-time"]), | |
| 31 | 31 | optionalTime: json["optional-time"], |
| 32 | - requiredDate: DateTime.parse(json["required-date"]), | |
| 33 | - requiredDateTime: DateTime.parse(json["required-date-time"]), | |
| 32 | + requiredDate: _parseDateTime(json["required-date"]), | |
| 33 | + requiredDateTime: _parseDateTime(json["required-date-time"]), | |
| 34 | 34 | requiredTime: json["required-time"], |
| 35 | 35 | ); |
| 36 | 36 | |
| @@ -43,3 +43,11 @@ class TopLevel { | ||
| 43 | 43 | "required-time": requiredTime, |
| 44 | 44 | }; |
| 45 | 45 | } |
| 46 | + | |
| 47 | +DateTime _parseDateTime(String value) { | |
| 48 | + final date = value.substring(0, 10); | |
| 49 | + if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) { | |
| 50 | + throw FormatException('Invalid date-time', value); | |
| 51 | + } | |
| 52 | + return DateTime.parse(value.toUpperCase()); | |
| 53 | +} |
No generated files match these filters.