getAll method Null safety

Future<BuiltList<PlanDefinition>> getAll(
  1. {int offset = 0,
  2. int? limit}
)

Implementation

Future<BuiltList<PlanDefinition>> getAll({
  final int offset = 0,
  final int? limit,
}) async {
  final gqlQueryString = '''
    query Find {
      planDefinitions(
        start: $offset
        ${limit == null ? 'limit: $limit' : ''}
      ) {
        ${PlanDefinitionGqlEntity.gqlQueryFragment}
      }
    }
  ''';

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

    if (queryResult.hasException) {
      logger?.e(queryResult.exception.toString());
      return <PlanDefinition>[].toBuiltList();
    }

    final data = queryResult.data!['planDefinitions'] as List<dynamic>;
    final q = data
        .map((dynamic e) =>
            PlanDefinitionGqlEntity.fromJson(e as Map<String, dynamic>))
        .where((element) => element != null)
        .map((e) => e!.toPlanDefinition());

    return q.toBuiltList();
  } catch (e, stackTrace) {
    logger?.e('Could not fetch questionnaires: ', e.toString(), stackTrace);
    return <PlanDefinition>[].toBuiltList();
  }
}