fetchUpdate method

  1. @override
Future<UpdateResult?> fetchUpdate()

Implementation

@override
Future<UpdateResult?> fetchUpdate() async {
  var res = await Dio()
      .get('https://itunes.apple.com/lookup?id=$appId&country=$countryCode');
  if (res.statusCode == 200) {
    var decoded = IosLookupResponse.fromJson(json.decode(res.data));
    if (decoded.count > 0 && decoded.results.isNotEmpty) {
      var result = decoded.results[0];
      return UpdateResult(
          latestVersion: Version.parse(result["version"]),
          downloadUrl: buildUpdateUrl(),
          releaseNotes: result["releaseNotes"],
          releaseDate: result["currentVersionReleaseDate"]);
    } else {
      throw Exception("Fail to fetch results for the app id.");
    }
  } else {
    throw Exception(
        "Fail to fetch lookup API. Status code: ${res.statusCode}.");
  }
}