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();
}
}