MiniProgramGalleryResult.fromJson constructor

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

Implementation

factory MiniProgramGalleryResult.fromJson(Map<String, dynamic> json) {
  final images = json['images'];
  final selectedAt = json['selectedAtUtc'];
  if (json['selectionId'] is! String ||
      images is! List ||
      images.isEmpty ||
      images.length > miniProgramGalleryMaxImages ||
      selectedAt is! String) {
    throw const FormatException('Invalid gallery selection metadata.');
  }
  final timestamp = DateTime.tryParse(selectedAt);
  if (timestamp == null) {
    throw const FormatException('Invalid gallery selection timestamp.');
  }
  return MiniProgramGalleryResult(
    selectionId: json['selectionId'] as String,
    images: images.map((image) {
      if (image is! Map<String, dynamic>) {
        throw const FormatException('Invalid gallery image metadata.');
      }
      return MiniProgramGalleryImage.fromJson(image);
    }).toList(),
    selectedAtUtc: timestamp,
  );
}