WikiResult.fromJson constructor

WikiResult.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory WikiResult.fromJson(Map<String, dynamic> json) {
  String? thumbUri;
  int? thumbWidth, thumbHeight;

  if (json['query'] == null) {
    throw const FormatException('No pages found');
  }

  Map<String, dynamic> page = json['query']['pages'][json['query']['pages'].keys.first] as Map<String, dynamic>;
  String title = page['title'] as String;
  String extract = page['extract'] as String;

  if (page.containsKey('thumbnail')) {
    Map<String, dynamic> thumb = page['thumbnail'] as Map<String, dynamic>;
    thumbUri = thumb['source'] as String;
    thumbWidth = thumb['width'] as int;
    thumbHeight = thumb['height'] as int;
  }

  return WikiResult(
        title: title,
        extract: extract,
        thumbUri: thumbUri,
        thumbWidth: thumbWidth,
        thumbHeight: thumbHeight
      );
}