AppRelease.fromJson constructor
AppRelease.fromJson(
- Map<String, dynamic> json
)
Implementation
factory AppRelease.fromJson(Map<String, dynamic> json) {
final downloadsList =
(json['downloads'] as List<dynamic>?)
?.map((d) => DownloadAsset.fromJson(d as Map<String, dynamic>))
.toList() ??
[];
// Parse screenshots - filter out empty strings
final screenshotsList =
(json['screenshots'] as List<dynamic>?)
?.map((s) => s.toString())
.where((s) => s.isNotEmpty)
.toList() ??
[];
return AppRelease(
id: json['id']?.toString() ?? '',
packageName: json['package_name'] ?? '',
appName: json['app_name'] ?? 'Unknown App',
repository: json['repository'] ?? '',
repositoryUrl: json['repository_url'] ?? '',
tag: json['tag'] ?? '',
version: json['version'] ?? '1.0.0',
buildNumber: json['build_number'] ?? 1,
description: json['description'],
releaseNotes: json['release_notes'],
apkUrl: json['apk_url'],
apkSize: json['apk_size'],
publishedAt: json['release_date'] != null
? DateTime.parse(json['release_date'])
: DateTime.now(),
iconUrl: json['icon_url'],
channel: json['channel'] ?? 'official',
isBeta: json['is_beta'] ?? false,
downloads: downloadsList,
screenshots: screenshotsList,
);
}