execute<T> static method
Implementation
static Future<ApiResult<T>> execute<T>({
required Future<T> Function() apiCall,
bool Function(T response)? isTokenExpired,
String tokenExpiredMessage = 'Session expired',
String unexpectedErrorMessage = 'Unexpected error',
void Function(Object error, StackTrace stackTrace)? onError,
}) async {
try {
final response = await apiCall();
if (isTokenExpired?.call(response) == true) {
return ApiFailure(tokenExpiredMessage);
}
return ApiSuccess(response);
} catch (e, stackTrace) {
onError?.call(e, stackTrace);
return ApiFailure(unexpectedErrorMessage, e, stackTrace);
}
}