processUsecaseResult<T> method
void
processUsecaseResult<T>({})
Implementation
void processUsecaseResult<T>({
required Either<APIErrors, T> result,
Function(T)? onSuccess,
Function(APIErrors)? onFail,
bool? shouldShowError,
bool? isRefreshing,
// RefreshController? controller,
}) {
result.fold(
(error) {
isLoading(false);
receiveErrorStream.sink.add(error);
if (shouldShowError ?? true && error is! NoMessageError) {
if (error is NoInternetError) {
// Utils.instance.showError(
// error: error,
// message: 'No internet',
// );
status.value = BaseStatus(
message: 'No internet',
state: AppState.failed,
);
} else {
if (error.details.toString().toLowerCase().contains('connection') ||
error.details.toString().toLowerCase().contains(
'can\'t assign requested address',
)) {
status.value = BaseStatus(
message: 'Connection aborted',
state: AppState.failed,
);
} else {
status.value = BaseStatus(
message: error.details.toString(),
state: AppState.failed,
);
}
}
}
if (onFail != null) {
onFail(error);
}
// if ((controller ?? refreshController) != null && isRefreshing != null) {
// isRefreshing
// ? (controller ?? refreshController)!.refreshFailed()
// : (controller ?? refreshController)!.loadFailed();
// }
},
(data) {
isLoading(false);
if (onSuccess != null) {
onSuccess(data);
}
// if ((controller ?? refreshController) != null && isRefreshing != null) {
// if (isRefreshing) {
// (controller ?? refreshController)!
// .refreshCompleted(resetFooterState: true);
// } else {
// if (data is List && data.isEmpty) {
// (controller ?? refreshController)!.loadNoData();
// } else {
// (controller ?? refreshController)!.loadComplete();
// }
// }
// }
},
);
}