AppData.fromJson constructor

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

Implementation

factory AppData.fromJson(Map<String, dynamic> json) {
  AWSRekognitionAddonResult? awsRecognition;
  ClamAVAddonResult? clamAV;
  RemoveBgAddonResult? removeBg;

  if (json['aws_rekognition_detect_labels'] != null) {
    awsRecognition = AWSRekognitionAddonResult(
      info: AddonResultInfo.fromJson(json['aws_rekognition_detect_labels']),
      labelModelVersion: json['aws_rekognition_detect_labels']['data']
          ['LabelModelVersion'],
      labels:
          (json['aws_rekognition_detect_labels']['data']['Labels'] as List)
              .map(
                (item) => AWSRecognitionLabel(
                  confidence: item['Confidence'],
                  name: item['Name'],
                  instances: (item['Instances'] as List)
                      .map(
                        (instance) => AWSRecognitionInstance(
                          boundingBox: ASWRecognitionBoundingBox(
                            top: instance['BoundingBox']['Top'],
                            left: instance['BoundingBox']['Left'],
                            width: instance['BoundingBox']['Width'],
                            height: instance['BoundingBox']['Height'],
                          ),
                          confidence: instance['Confidence'],
                        ),
                      )
                      .toList(),
                  parents: (item['Parents'] as List)
                      .map((parent) => parent['Name'] as String)
                      .toList(),
                ),
              )
              .toList(),
    );
  }

  if (json['uc_clamav_virus_scan'] != null) {
    clamAV = ClamAVAddonResult(
      info: AddonResultInfo.fromJson(json['uc_clamav_virus_scan']),
      infected: json['uc_clamav_virus_scan']['data']['infected'],
      infectedWith:
          json['uc_clamav_virus_scan']['data']['infected_with'] ?? '',
    );
  }

  if (json['remove_bg'] != null) {
    removeBg = RemoveBgAddonResult(
      info: AddonResultInfo.fromJson(json['remove_bg']),
      foregroundType: json['remove_bg']['data']['foreground_type'] as String,
    );
  }

  return AppData(
    awsRecognition: awsRecognition,
    clamAV: clamAV,
    removeBg: removeBg,
  );
}