getAll method Null safety

Future<BuiltSet<LocalizedType<Condition>>> getAll()

Implementation

Future<BuiltSet<LocalizedType<Condition>>> getAll() async {
  const gqlQueryString = '''
  query FetchAllConditionsWithLocalizations {
    conditions {
      ${ConditionGqlEntity.gqlQueryFragment}
    }
  }
  ''';

  try {
    final queryResult = await graphQLClient
        .query<void>(QueryOptions(document: gql(gqlQueryString)));

    if (queryResult.hasException) {
      logger?.e(queryResult.exception.toString());
      return BuiltSet<LocalizedType<Condition>>();
    }

    final data = queryResult.data!['conditions'] as List<dynamic>;
    final l = data
        .map((dynamic e) =>
            ConditionGqlEntity.fromJson(e as Map<String, dynamic>))
        .where((element) => element != null)
        .map((e) => e!.toLocalizedTypeCondition())
        .toBuiltSet();

    ConditionsStorage.allConditions = BuiltMap.from(
        Map<String, LocalizedType<Condition>>.fromEntries(
            l.map((p0) => MapEntry(p0.defaultValue.id, p0))));

    return l;
  } catch (e, stackTrace) {
    logger?.e('Could not get list of conditions', e.toString(), stackTrace);
    return BuiltSet<LocalizedType<Condition>>();
  }
}