network<T> method
Future<T>
network<T>({
- required Future<
ResponseModel< request(),T> > - T? fallback,
- bool throwOnError = true,
Provides a clean interface for making requests with automatic response handling
Implementation
Future<T> network<T>({
required Future<ResponseModel<T>> Function() request,
T? fallback,
bool throwOnError = true,
}) async {
try {
final responseModel = await request();
if (responseModel.success && responseModel.data != null) {
return responseModel.data!;
} else if (fallback != null) {
return fallback;
} else if (throwOnError) {
throw Exception(responseModel.message ?? 'Request failed');
} else {
return responseModel.data!;
}
} catch (e) {
if (fallback != null && !throwOnError) {
return fallback;
}
rethrow;
}
}