findAll method
- @protected
- @visibleForTesting
- bool? remote,
- Map<
String, dynamic> ? params, - Map<
String, String> ? headers, - bool? syncLocal,
- bool filterLocal(
- T
- OnData<
List< ? onSuccess,T> > - OnDataError<
List< ? onError,T> >
inherited
Implementation
@protected
@visibleForTesting
Future<List<T>> findAll({
bool? remote,
Map<String, dynamic>? params,
Map<String, String>? headers,
bool? syncLocal,
bool Function(T)? filterLocal,
OnData<List<T>>? onSuccess,
OnDataError<List<T>>? onError,
}) async {
_assertInit();
remote ??= _remote;
syncLocal ??= false;
params = await defaultParams & params;
headers = await defaultHeaders & headers;
filterLocal ??= (_) => true;
if (!shouldLoadRemoteAll(remote, params, headers)) {
final models =
localAdapter.findAll().where(filterLocal).toImmutableList();
models.map((m) => m._initialize(adapters, save: true));
return models;
}
final result = await sendRequest(
baseUrl.asUri / urlForFindAll(params) & params,
method: methodForFindAll(params),
headers: headers,
requestType: DataRequestType.findAll,
key: internalType,
onSuccess: (data) async {
if (syncLocal!) {
await localAdapter.clear();
}
final models = data != null
? deserialize(data as Object)
.models
.where(filterLocal!)
.toImmutableList()
: <T>[];
return onSuccess?.call(models) ?? models;
},
onError: onError,
);
return result ?? <T>[];
}