User.fromApi constructor

User.fromApi(
  1. Map<String, dynamic> jsonData
)

Implementation

factory User.fromApi(Map<String, dynamic> jsonData) {
  return User(
      id: jsonData['id'],
      gender: jsonData['gender'] ?? '',
      jobTitle: jsonData['jobTitle'] ?? '',
      username: jsonData['username'],
      password: jsonData['password'],
      firstName: jsonData['firstName'],
      surname: jsonData['surname'],
      name: jsonData['name'],
      phoneNumber: jsonData['phoneNumber'],
      baseUrl: jsonData['baseUrl'] ?? '',
      created: jsonData['created'],
      lastUpdated: jsonData['lastUpdated'],
      token: jsonData['token'],
      tokenType: jsonData['tokenType'],
      refreshToken: jsonData['refreshToken'],
      tokenExpiry: jsonData['tokenExpiry'],
      authType: jsonData['authType'],
      teiSearchOrganisationUnits:
          jsonData['teiSearchOrganisationUnits'].toString(),
      organisationUnits: jsonData['organisationUnits']
          .map<UserOrganisationUnit>((orgUnit) => UserOrganisationUnit(
              id: '${jsonData['id']}_${orgUnit['id']}',
              name: '${jsonData['id']}_${orgUnit['id']}',
              orgUnit: orgUnit['id'],
              parent:
                  orgUnit['parent'] != null ? orgUnit['parent']['id'] : null,
              user: jsonData['id'],
              type: 'DATA_VIEW',
              dirty: jsonData['dirty'] ?? false))
          .toList(),
      authorities: getAuthorities(jsonData),
      roles: (jsonData['userCredentials']?['userRoles'] ?? [])
          .map<UserRole>((role) => UserRole(
              id: '${jsonData['id']}_${role['id']}',
              name: role['name'],
              user: jsonData['id'],
              dirty: jsonData['dirty'] ?? true))
          .toList(),
      dataViewOrganisationUnits:
          jsonEncode(jsonData['dataViewOrganisationUnits']),
      programs: jsonData['programs'] != null
          ? jsonData['programs'].toString()
          : null,
      dataSets: jsonData['datasets'] != null
          ? jsonData['datasets'].toString()
          : null,
      isLoggedIn: jsonData['isLoggedIn'] ?? false,
      tokenExpiresAt: jsonData['tokenExpiresAt'] ??
          DateTime.now()
              .add(Duration(seconds: jsonData['tokenExpiry'] ?? 3600))
              .toIso8601String(),
      dirty: jsonData['dirty'] ?? false);
}