TrackedEntityInstance.fromJson constructor

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

Implementation

factory TrackedEntityInstance.fromJson(Map<String, dynamic> json) {
  final attributes = json['attributes'];

  final dynamic lastSyncSummary = json['lastSyncSummary'] != null
      ? TrackedEntityInstanceImportSummary.fromJson(
          jsonDecode(json['lastSyncSummary']))
      : null;

  return TrackedEntityInstance(
      id: json['id'] ?? json['trackedEntityInstance'],
      name: json['trackedEntityInstance'],
      created: json['created'] ?? json['createdAt'],
      lastUpdated: json['lastUpdated'] ?? json['updatedAt'],
      orgUnit: json['orgUnit'],
      trackedEntityInstance: json['trackedEntityInstance'],
      trackedEntityType: json['trackedEntityType'],
      deleted: json['deleted'],
      synced: json['synced'] ?? true,
      saved: json['saved'],
      transfer: json['transfer'],
      syncFailed: json['syncFailed'],
      lastSyncSummary: lastSyncSummary,
      lastSyncDate: json['lastSyncDate'],
      inactive: json['inactive'],
      enrollments: json['enrollments'] != null
          ? List<dynamic>.from(json['enrollments'])
              .map((enrollment) => Enrollment.fromJson({
                    ...enrollment,
                    'trackedEntityType': enrollment['trackedEntityType'] ??
                        json['trackedEntityType'],
                    'dirty': enrollment['dirty'] ?? json['dirty'] ?? false,
                    'synced': json['synced'] ?? true
                  }))
              .toList()
          : null,
      attributes: List<Map<String, dynamic>>.from(attributes ?? [])
          .map((attribute) => TrackedEntityAttributeValue.fromJson({
                ...attribute,
                'id': attribute['id'] ??
                    '${json['trackedEntityInstance']}_${attribute['attribute']}',
                'trackedEntityInstance':
                    json['trackedEntityInstance'] ?? json['trackedEntity'],
                'dirty': attribute['dirty'] ?? false
              }))
          .toList(),
      relationships: List<dynamic>.from(json['relationships'] ?? [])
          .map((relationship) => TrackedEntityInstanceRelationship.fromJson({
                ...relationship,
                'dirty': relationship['dirty'] ?? json['dirty'] ?? false,
                'synced': json['synced'] ?? true
              }))
          .toList(),
      skipDateUpdate: json['skipDateUpdate'],
      dirty: json['dirty'] ?? false);
}