Skip to content

Commit 9517439

Browse files
Merge pull request #1441 from cypherstack/letsexchange-api-inconsistent-return-data-types-fix
docs say return type is string or null but ints get returned sometimes 🤷
2 parents 64aa5a5 + d14ad05 commit 9517439

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

lib/services/exchange/lets_exchange/models/coin_info.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,17 @@ class CoinInfo {
2727

2828
factory CoinInfo.fromJson(Map<String, dynamic> json) {
2929
final rawProfit = json["profit"] as String?;
30-
final rawExpiredAt = json["rate_id_expired_at"] as int?;
30+
31+
final rawExpiredAt = json["rate_id_expired_at"] is int
32+
? json["rate_id_expired_at"] as int
33+
: json["rate_id_expired_at"] is String
34+
? int.tryParse(json["rate_id_expired_at"] as String)
35+
: null;
36+
37+
final expiredAt = rawExpiredAt == null
38+
? null
39+
: DateTime.fromMillisecondsSinceEpoch(rawExpiredAt);
40+
3141
return CoinInfo(
3242
minAmount: Decimal.parse(json["min_amount"] as String),
3343
maxAmount: Decimal.parse(json["max_amount"] as String),
@@ -36,9 +46,7 @@ class CoinInfo {
3646
profit: rawProfit == null ? null : Decimal.tryParse(rawProfit),
3747
withdrawalFee: Decimal.parse(json["withdrawal_fee"] as String),
3848
rateId: json["rate_id"] as String?,
39-
rateIdExpiredAt: rawExpiredAt == null
40-
? null
41-
: DateTime.fromMillisecondsSinceEpoch(rawExpiredAt),
49+
rateIdExpiredAt: expiredAt,
4250
);
4351
}
4452

0 commit comments

Comments
 (0)