latestRelease method

Future<Release> latestRelease({
  1. required AutoRefreshingAuthClient authClient,
})

Implementation

Future<Release> latestRelease({
  required final AutoRefreshingAuthClient authClient,
}) async {
  final response = await authClient.get(
    Uri.parse(
      'https://firebaseappdistribution.googleapis.com/v1/projects/$_projectId/apps/$_appId/releases',
    ),
  );

  if (response.statusCode != 200) {
    logHttpResponse(response);
    exit(1);
  }
  final data = json.decode(response.body) as Map<String, dynamic>?;
  final releases = data?['releases'] as List?;
  final firstRelease = releases?.firstOrNull as Map?;
  final displayVersion = firstRelease?['displayVersion'] as String?;

  return Release(
    buildName: displayVersion ?? '1.0.0',
    buildNumber:
        int.tryParse(firstRelease?['buildVersion'] as String? ?? '') ?? 0,
  );
}