LoadResult.fromJson constructor
LoadResult.fromJson(
- Map<String, dynamic> json
)
Implementation
factory LoadResult.fromJson(Map<String, dynamic> json) {
final loadTypeStr = json['loadType'] as String;
final loadType = LoadType.values.firstWhere(
(e) => e.toString().split('.').last == loadTypeStr,
orElse: () => LoadType.empty,
);
dynamic data;
switch (loadType) {
case LoadType.track:
data = Track.fromJson(json['data'] as Map<String, dynamic>);
break;
case LoadType.playlist:
data = PlaylistInfo.fromJson(json['data'] as Map<String, dynamic>);
break;
case LoadType.search:
data = (json['data'] as List)
.map((e) => Track.fromJson(e as Map<String, dynamic>))
.toList();
break;
case LoadType.error:
data = LoadException.fromJson(json['data'] as Map<String, dynamic>);
break;
case LoadType.empty:
data = null;
break;
}
return LoadResult(
loadType: loadType,
data: data,
);
}