diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index debd930cf..fce9d9a56 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -45,11 +45,11 @@ class AddressResolver { final formattedName = text.substring(1); final twitterUser = await TwitterApi.lookupUserByName(userName: formattedName); final addressFromBio = extractAddressByType( - raw: twitterUser.data.description, type: CryptoCurrency.fromString(ticker)); + raw: twitterUser.description, type: CryptoCurrency.fromString(ticker)); if (addressFromBio != null) { return ParsedAddress.fetchTwitterAddress(address: addressFromBio, name: text); } - final tweets = twitterUser.includes?.tweets; + final tweets = twitterUser.tweets; if (tweets != null) { var subString = StringBuffer(); tweets.forEach((item) { diff --git a/lib/twitter/twitter_user.dart b/lib/twitter/twitter_user.dart index 626f9cd7f..d24a68ca0 100644 --- a/lib/twitter/twitter_user.dart +++ b/lib/twitter/twitter_user.dart @@ -1,73 +1,45 @@ class TwitterUser { - TwitterUser({ - required this.data, - this.includes, - }); + TwitterUser( + {required this.id, + required this.username, + required this.name, + required this.description, + this.tweets}); - late final Data data; - late final Includes? includes; + final String id; + final String username; + final String name; + final String description; + final List? tweets; - TwitterUser.fromJson(Map json) { - data = Data.fromJson(json['data'] as Map); - includes = json['includes'] != null - ? Includes.fromJson(json['includes'] as Map) - : null; + factory TwitterUser.fromJson(Map json) { + return TwitterUser( + id: json['data']['id'] as String, + username: json['data']['username'] as String, + name: json['data']['name'] as String, + description: json['data']['description'] as String, + tweets: json['includes'] != null + ? List.from(json['includes']['tweets'] as List) + .map((e) => Tweet.fromJson(e as Map)) + .toList() + : null, + ); } } -class Data { - Data({ - required this.name, - required this.id, - required this.pinnedTweetId, - required this.description, - required this.username, - }); - - late final String name; - late final String id; - late final String? pinnedTweetId; - late final String description; - late final String username; - - Data.fromJson(Map json) { - name = json['name'] as String; - id = json['id'] as String; - pinnedTweetId = json['pinned_tweet_id'] as String?; - description = json['description'] as String; - username = json['username'] as String; - } -} - -class Includes { - Includes({ - required this.tweets, - }); - - late final List tweets; - - Includes.fromJson(Map json) { - tweets = List.from(json['tweets'] as Iterable) - .map((e) => Tweets.fromJson(e as Map)) - .toList(); - } -} - -class Tweets { - Tweets({ - required this.editHistoryTweetIds, +class Tweet { + Tweet({ required this.id, required this.text, }); - late final List editHistoryTweetIds; - late final String id; - late final String text; + final String id; + final String text; - Tweets.fromJson(Map json) { - editHistoryTweetIds = - List.castFrom(json['edit_history_tweet_ids'] as List); - id = json['id'] as String; - text = json['text'] as String; + factory Tweet.fromJson(Map json) { + return Tweet( + id: json['id'] as String, + text: json['text'] as String, + ); } }