ProgramTrackedEntityAttribute.fromJson constructor

ProgramTrackedEntityAttribute.fromJson(
  1. Map<String, dynamic> jsonData
)

Implementation

factory ProgramTrackedEntityAttribute.fromJson(
    Map<String, dynamic> jsonData) {
  final optionSetValueCount =
      jsonData['trackedEntityAttribute']?['optionSet']?['options']?.length;
  final attribute =
      jsonData['attribute'] ?? jsonData['trackedEntityAttribute']?['id'];

  final translations = jsonData['trackedEntityAttribute']?['translations'] ??
      jsonData['translationString'];

  return ProgramTrackedEntityAttribute(
      id: jsonData['id'],
      attribute: attribute,
      renderOptionsAsRadio: jsonData['renderOptionsAsRadio'],
      name: jsonData['trackedEntityAttribute']?['name'] ?? jsonData['name'],
      displayName: jsonData['trackedEntityAttribute']?['displayName'] ??
          jsonData['displayName'],
      formName: jsonData['trackedEntityAttribute']?['formName'] ??
          jsonData['formName'],
      program: jsonData['program'],
      valueType: jsonData['valueType'],
      displayInList: jsonData["displayInList"] ?? null,
      sortOrder: jsonData['sortOrder'],
      mandatory: jsonData['mandatory'],
      aggregationType: jsonData['aggregationType'] ??
          jsonData['trackedEntityAttribute']?['aggregationType'],
      code: jsonData['trackedEntityAttribute']?['code'] ?? jsonData['code'],
      generated: jsonData['generated'] ??
          jsonData['trackedEntityAttribute']?['generated'],
      isUnique: jsonData['isUnique'] ??
          jsonData['trackedEntityAttribute']?['unique'],
      optionSetValue: jsonData['optionSetValue'] ??
          jsonData['trackedEntityAttribute']?['optionSetValue'],
      optionSetValueCount: optionSetValueCount,
      optionSetName: jsonData['optionSetName'] ??
          jsonData['trackedEntityAttribute']?['optionSet']?['name'],
      options: List<dynamic>.from(jsonData['options'] ??
              jsonData['trackedEntityAttribute']?['optionSet']?['options'] ??
              [])
          .map((option) => AttributeOption.fromJson({
                ...option,
                'id': '${option['id']}_${jsonData['id']}_$attribute',
                'programTrackedEntityAttribute': jsonData['id'],
                'attribute': attribute,
                'dirty': false
              }))
          .toList(),
      dirty: jsonData['dirty'],
      translations: translations);
}